【发布时间】:2016-04-19 05:35:17
【问题描述】:
我正在编写一个 Omeka 插件,并希望在我的插件下的控制器中获取所有公共项目及其所有元素的列表。
我试过get_items(),但该功能不存在,看起来该功能仅适用于视图 - 不确定如何。
另一种尝试是手动从数据库中获取记录,但这不是标准方法。
那么,问题是,是否有预定义的函数/类或方法来获取控制器中的所有项目?
【问题讨论】:
标签: php zend-framework omeka
我正在编写一个 Omeka 插件,并希望在我的插件下的控制器中获取所有公共项目及其所有元素的列表。
我试过get_items(),但该功能不存在,看起来该功能仅适用于视图 - 不确定如何。
另一种尝试是手动从数据库中获取记录,但这不是标准方法。
那么,问题是,是否有预定义的函数/类或方法来获取控制器中的所有项目?
【问题讨论】:
标签: php zend-framework omeka
我不确定是否有一个函数可以为您获取项目及其所有元素文本,但如果您想要一个项目列表,在控制器内部您应该能够进行如下调用:
$items = $this->_helper->db->getTable('Item')->findAll();
Omeka 文档警告不要一次获取所有项目,因为这可能会占用大量内存。因此,或者,您可以遍历项目。
$items = $this->_helper->db->getTable('Item');
$item = $items->findFirst();
while($item != NULL){
// Do something
$item = $items->findNext($item);
}
项目上有一个“公共”属性,可以告诉您它是否是公共的。为了获取项目的元素文本,我认为您必须对 ElementText 表进行查询。
有关更多信息,请参阅 Omeka 阅读 Table_Item、Omeka_Db_Table 和 Item 的文档页面:
http://omeka.readthedocs.io/en/latest/Reference/libraries/Omeka/Db/Table.html http://omeka.readthedocs.io/en/latest/Reference/models/Table/Item.html http://omeka.readthedocs.io/en/latest/Reference/models/Item.html
【讨论】: