SocialEngine:getDbTable() 与 getItemTable()
SocialEngine: getDbTable() vs. getItemTable()
我经常看到使用 Engine_Api::_()->getDbTable()
.
在 SocialEngine 中检索表格
例如:
$usersTbl = Engine_Api::_()->getDbTable('users','user');
$row = $usersTbl->createRow();
$row->user_id = $user->getIdentity();
$row->phone_number = $phoneNumber;
$row->save();
不过,我也看到SocialEngine在很多地方都使用了Engine_Api::_()->getItemTable
。例如:
$table = Engine_Api::_()->getItemTable($type);
$row = $table->createRow();
foreach($params as $key=>$value) {
if(isset($row->$key)) {
$row->key = $value;
}
}
$row->save();
这两种类型的访问之间的主要区别是什么(如果有),以及它们分别在什么时候使用?
/application/libraries/Engine/
Engine
文件夹是zend之上的SocialEngine CMS,在这里你可以找到所有的功能定义
/application/modules/moduleName/settings/manifest.php
[这里添加项目,在模块中]
加载应用程序时,将扫描所有清单文件并加载项目。
getItemTable
只能在定义项目时加载 DbTable class。
其中 getDbTable() 可用于未用作项目的表。
我经常看到使用 Engine_Api::_()->getDbTable()
.
在 SocialEngine 中检索表格
例如:
$usersTbl = Engine_Api::_()->getDbTable('users','user');
$row = $usersTbl->createRow();
$row->user_id = $user->getIdentity();
$row->phone_number = $phoneNumber;
$row->save();
不过,我也看到SocialEngine在很多地方都使用了Engine_Api::_()->getItemTable
。例如:
$table = Engine_Api::_()->getItemTable($type);
$row = $table->createRow();
foreach($params as $key=>$value) {
if(isset($row->$key)) {
$row->key = $value;
}
}
$row->save();
这两种类型的访问之间的主要区别是什么(如果有),以及它们分别在什么时候使用?
/application/libraries/Engine/
Engine
文件夹是zend之上的SocialEngine CMS,在这里你可以找到所有的功能定义
/application/modules/moduleName/settings/manifest.php
[这里添加项目,在模块中]
加载应用程序时,将扫描所有清单文件并加载项目。
getItemTable
只能在定义项目时加载 DbTable class。
其中 getDbTable() 可用于未用作项目的表。