我花了几天的时间寻找一个简单的教程,以将过滤器添加到产品集合中。如果有人链接到一个好的教程或外观,我将非常感谢。我找到了一个洋红色的皮肤和list.phtml文件使用此代码:

$products_collection = Mage::getModel( 'catalog/product' )
        ->getCollection()
        ->addAttributeToSelect( '*' )
        ->addCategoryFilter( $_cat )
        ->addOrder( 'position', 'ASC' );
    Mage::getSingleton( 'catalog/product_status' )->addSaleableFilterToCollection( $products_collection );
    Mage::getSingleton( 'catalog/product_visibility' )->addVisibleInCatalogFilterToCollection( $products_collection );
    Mage::getSingleton( 'cataloginventory/stock' )->addInStockFilterToCollection( $products_collection );

我尚未看到使用此方法“添加缩写”的过滤。可以以这种方式使用其他哪些属性?开发人员会使用该方法的原因是什么?主题类别列表没有评论设置。我找到了输出评论的代码,但我认为产品模型中缺少评论。我试过了

Mage::getSingleton( 'review/review' )->addReviewToCollection( $products_collection );

但这没什么。

我对学习如何钓鱼而不是被送出鱼更感兴趣。

有帮助吗?

解决方案

可以使用哪些其他属性来添加自定义过滤器?

字面上地 任何. 。这取决于开发人员或平台的需求。

开发人员会使用该方法的原因是什么?

主要是 干燥. 。可能需要在多个上下文中重复过滤条件,并且正确(理智)设计告诉我们,逻辑应将其封装在方法中。

我试过了 Mage::getSingleton( 'review/review' )->addReviewToCollection( $products_collection ); 但这没什么。

虽然Magento中有很多看似伏都教的魔法(通常是由活动建筑或 Varien_Object::__call(), ,这些收集过滤器必须在某个地方实施。我建议在下面搜索 app/code/ 找到给定的定义:

$ grep -srl 'n addSaleableFilterToCollection'

其他提示

有关Magento收藏的不同选项的一些一般见解,请阅读 本文

可以通过使用模型添加过滤器来修改某些集合,基本上这些模型只是更改Magento执行的查询以检索集合。您可以使用以下代码打印来查询某个集合以查看发生的事情

var_dump((string)$collection->getSelect());

我认为您上面说明的过滤器几乎涵盖了所有这些MISC过滤器。可以通过编写自己的扩展名来创建像您描述的评论过滤器,该扩展名可以将评论表加入主集合查询。

但是,我不确定这是否是一项良好的行动表现。

许可以下: CC-BY-SA归因
scroll top