我必须加载一系列产品并对它们进行排序以便进一步显示。
最初,该集合按日期排序。这完美无瑕。现在我必须为产品添加新的YES / NO属性。这也很好。
我唯一无法弄清楚的是如何通过此属性对我的集合进行排序。 该集合必须按此新属性以及日期进行排序。
我认为这样可行:
$collection->addAttributeToSelect('name');
$collection->addAttributeToSelect('YesNoAttr');
$collection->addAttributeToSelect('special_to_date');
$collection->addAttributeToSelect('short_description');
$collection->addAttributeToSelect('image');
$collection->addAttributeToSort('YesNoAttr', 'ASC')->addAttributeToSort('special_to_date', 'ASC');
$products = $collection->load();
没有。我也尝试设置顺序:
$collection->setOrder('YesNoAttr','ASC');
我尝试仅使用新属性进行排序,但它也不起作用,所以我很确定它与我尝试按2个属性排序无关。
我现在试图解决这个问题几个小时,我完全不知道自己做错了什么。
非常感谢任何帮助。
答案 0 :(得分:1)
要添加多个属性以进行订购,您可以尝试执行此操作:
$collection->getSelect()->order('main_table.YesNoAttr asc')
->order('main_table.special_to_date asc');