SocialEngine:getDbTable()与getItemTable()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SocialEngine:getDbTable()与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类。

其中getDbTable()可用于未用作Items的表。

以上是关于SocialEngine:getDbTable()与getItemTable()的主要内容,如果未能解决你的问题,请参考以下文章

Socialengine 组邀请不起作用

Socialengine 中的匿名评论

无法在 SocialEngine 中将变量值视为简单测试

显示列中的最后一个ID - Zend Framework

Java社交网络引擎(框架/平台)列表[关闭]

制作基于模块的社交网络 cms