Magento 2-使用观察者事件的产品过滤器

Magento 2-使用观察者事件的产品过滤器,magento,magento2,Magento,Magento2,我正在尝试创建一个观察者,以便对产品集合应用其他过滤器 所以我使用magento 2事件:目录\产品\集合\加载\之后 观察员代码为: public function execute(\Magento\Framework\Event\Observer $observer) { $collection = $observer->getEvent()->getCollection(); $collection->addAttributeTo

我正在尝试创建一个观察者,以便对产品集合应用其他过滤器

所以我使用magento 2事件:目录\产品\集合\加载\之后

观察员代码为:

 public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $collection = $observer->getEvent()->getCollection();
        $collection->addAttributeToFilter('size',10);
        return $this;
    }
但是上面的代码可以很好地处理产品集合,但是显示了错误的分页和产品计数

层导航也是如此

有什么解决办法吗?

试试这个:

namespace Vendor\Module\Observer;

use Magento\Framework\Event\ObserverInterface;
use Magento\Catalog\Model\Layer\Resolver as LayerResolver;

class CatalogProductCollectionLoadAfter implements ObserverInterface
{
    /**
     * @var \Magento\Catalog\Model\Layer\Category
     */
    protected $catalogLayer;

    /**
     * @param LayerResolver $layerResolver,
     */
    public function __construct(
        LayerResolver $layerResolver
    ) {
        $this->catalogLayer = $layerResolver->get();
    }

    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        // Get selected filters
        $layer         = $this->catalogLayer;
        $activeFilters = $layer->getState()->getFilters();
    }
}

你找到解决问题的办法了吗?嗨,你找到解决办法了吗?你找到解决问题的办法了吗?还没有找到解决办法?在多个事件中有相同的问题。产品集合得到了很好的过滤,但是计数和分页都是错误的