Omeka:获取控制器中的所有项目
Omeka: Get all items in Controller
我正在编写一个 Omeka 插件,并希望在我的插件下的控制器中获取所有 public 项及其所有元素的列表。
我试过 get_items() 但该功能不存在,看起来该功能仅适用于视图 - 不确定如何。
另一种尝试是手动从数据库中获取记录,但这不是标准方法。
所以,问题是,是否有预定义的 function/class 或方法来获取控制器中的所有项目?
我不确定是否有一个函数可以让你获得项目及其所有元素文本,但如果你想要一个项目列表,在控制器内部你应该能够像:
$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);
}
项目上有一个 "public" 属性,告诉您它是否是 public。为了获取项目的元素文本,我认为您必须对 ElementText
table.
进行查询
有关详细信息,请参阅 Table_Item
、Omeka_Db_Table
和 Item
的 Omeka 阅读文档页面:
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
我正在编写一个 Omeka 插件,并希望在我的插件下的控制器中获取所有 public 项及其所有元素的列表。
我试过 get_items() 但该功能不存在,看起来该功能仅适用于视图 - 不确定如何。
另一种尝试是手动从数据库中获取记录,但这不是标准方法。
所以,问题是,是否有预定义的 function/class 或方法来获取控制器中的所有项目?
我不确定是否有一个函数可以让你获得项目及其所有元素文本,但如果你想要一个项目列表,在控制器内部你应该能够像:
$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);
}
项目上有一个 "public" 属性,告诉您它是否是 public。为了获取项目的元素文本,我认为您必须对 ElementText
table.
有关详细信息,请参阅 Table_Item
、Omeka_Db_Table
和 Item
的 Omeka 阅读文档页面:
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