我正在使用1.4.1
建立一个新商店我正在尝试按照它们所属的子类别对列表中的产品进行排序。 list.phtml的顶部是
$_productCollection=$this->getLoadedProductCollection();
我尝试通过添加行
为其添加排序过滤器$_productCollection->setOrder('category_ids', 'asc')->setOrder('name', 'asc');
我也尝试过addAttributeToSort而不是setOrder。这似乎没有任何影响。我猜测$ _productCollection不是我可以用这种方式排序的模型。我一直在努力找到正确的地方来应用排序方法而没有任何成功。
有人可以告诉我适当的地方吗?
答案 0 :(得分:0)
来自getLoadedProductCollection
的电话来自哪里?这是一个安全的赌注(通过集合的名称),在您收集集合时已经加载了集合(例如,SQL已经被执行)。这意味着您的限制/排序机会已经结束。
可能还有另一个尚未加载的方法版本。如果可能,请使用那个。
谢谢, 乔
答案 1 :(得分:0)
你是约瑟夫,SQL是进入/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php,搜索“public function addAttributeToSort”
但这样做的代码是我无法实现的。
只记得在路径/ app / code / local / Mage / Catalog / Model / Resource / Eav / Mysql4 / Product上保存de new Collection.php以避免更新问题。
如果您发现了de code,请发帖。
我正在尝试。
答案 2 :(得分:0)
$this->getLoadedProductCollection();
只返回块从后端返回的产品集合。
如果要为产品集合添加一些自定义代码,请编辑文件夹层次结构下的文件
app/code/core/Mage/Block/catalog/product/list.php
您将找到相同的命名函数,即getLoadedProductCollection()
跟踪其工作情况,最后您将找到解决方案。