我需要重新组织产品列表类别页面。我的产品中有一个date_field属性需要遵循此排名:
- date_field >= today的产品首先出现
- 将其合并到date_field < 今天的产品
因此,我使用以下代码为catalog_block_product_list_collection调度程序创建了一个观察者:
$original_collection = clone $observer->getEvent()->getCollection();
$observer->getEvent()->getCollection()
->addAttributeToFilter('data_inicio', array('gteq' => date('Y-m-d')));
$collection2 = $original_collection
->addAttributeToFilter('data_inicio', array('lt' => date('Y-m-d')));
//and after I will merge both collections by adding each item from $collection2 into $observer
但是当在$collection2上再次应用相同的过滤器时,它会引发以下错误:
您不能多次定义相关名称“_table_data_inicio_default”
只有过滤器的第一部分工作正常。有没有更好的方法来做到这一点?