我遇到了一个问题,因为我确信我的编程并没有正确地执行此操作
我在Magento中创建了一个自定义模型
在我的模型的数据库表中,有几个具有相同属性的实体...
我需要从具有相同属性的所有这些实体中选择一个。
目前我这样做了:
$myvariable = Mage::getModel('test/test')->getCollection()
->setOrder('idserialkeys', 'asc')
->addFilter('idproduit', 1)
->addFilter('utilise', 0)
->addFilter('customerid', 0)
->addFilter('numcommande', 0)
从这个加载我有大约一百个结果,但我只需要更新其中一个,所以就在我做之后:
->setPageSize(1);
问题是我需要foreach
来更新我的实体
foreach($mavaribale as $modifiemoi) {
// Update of my entity because of course there is only one
}
正如你所看到的,即使我有一个setPagesize
,我也不得不做一个循环(对于每一个)...我想避免这个愚蠢的循环来优化我的代码。
感谢您的建议并度过愉快的一天,
安塞尔姆
答案 0 :(得分:19)
如果您有一个集合,并且只需要一个元素,请使用getFirstItem
方法。试试这个:
$modifiemoi = $myvariable->getFirstItem();
确保您还使用setPageSize
来电,以便只传输一个项目的数据。
希望有所帮助!
谢谢, 乔
答案 1 :(得分:11)
所有馆藏都是Varien_Data_Collection
个对象,因此您可以使用getFirstItem
:
$modifiemoi = $mavaribale->getFirstItem();