我正在开发 Magento - Enterprise Edition。
我得到了一个致命的错误:
基于产品数量排序时,我根据产品数量为过滤器属性应用uasort函数时,在过滤器中找不到基本lambda函数
代码:
<?php
$items = $this->getItems();
uasort($items, function($a,$b) {
return ($a->getCount() - $b->getCount())* -1;
});
?>
请帮我解决这个问题。谢谢。
答案 0 :(得分:0)
Lambda函数不像我们期望的那样在Magento中运行。这是解决方案:
1)向某个助手添加功能,例如添加到您的分机:
protected static function _compare($a, $b){
return ($a->getCount() - $b->getCount())* -1;
}
2)使用下一种格式:
uasort($items, array('Your_Extension_Helper_Data', '_compare'));
即使启用了APC缓存,也可以使用。
另一种变体:将_compare函数添加到要使用uasort的当前文件中,在这种情况下它将如下所示:
uasort($items, array($this, '_compare'));
或
uasort($items, array('Name_Of_Your_Class', '_compare'));