Collections Magento 2按价格范围获取产品系列
如何根据Magento 2中的pricerange创建产品集合。 这就是我到目前为止所做的:Collections Magento 2按价格范围获取产品系列,collections,magento2,Collections,Magento2,如何根据Magento 2中的pricerange创建产品集合。 这就是我到目前为止所做的: <?php namespace Qxs\Related\Block; class Related extends \Magento\Framework\View\Element\Template { protected $_productCollectionFactory; public function __construct( \Magento\Backen
<?php namespace Qxs\Related\Block;
class Related extends \Magento\Framework\View\Element\Template
{
protected $_productCollectionFactory;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
\Magento\Catalog\Model\Product\Attribute\Source\Status $productStatus,
\Magento\Catalog\Model\Product\Visibility $productVisibility,
array $data = []
)
{
$this->_productCollectionFactory = $productCollectionFactory;
$this->productStatus = $productStatus;
$this->productVisibility = $productVisibility;
parent::__construct($context, $data);
}
public function getProductCollection()
{
//var_dump($this->currentProduct());
$collection = $this->_productCollectionFactory->create();
$collection->addAttributeToSelect('*')
->addAttributeToFilter('special_price', ['from' => 0, 'to' => 1000])
->addAttributeToFilter('status', ['in' => $this->productStatus->getVisibleStatusIds()])
->setVisibility($this->productVisibility->getVisibleInSiteIds())
->setPageSize(5);
return $collection;
}
public function currentProduct()
{
return $this->_coreRegistry->registry('product');
}
}
?>
但是,代码不会返回包含价格范围的结果。结果完全为空,但应返回一些产品,我如何筛选价格范围
谢谢,范围过滤器,我用addFieldToFilter以这种方式工作。你试过了吗
$orders = $this->_orderCollectionFactory->create()
->addAttributeToSelect('*')
->addFieldToFilter( 'created_at' , array('from' => $dateFrom, 'to' => $dateTo) )
->setOrder('created_at', 'desc' );
->setPageSize(200);
->addFieldToFilter'special_price',['from'=>0',to'=>1000]不起作用。这很奇怪,我试过一些产品,它对我有效,正常价格,比如$products=$this->\u productCollectionFactory->create->addAttributeToSelect'*'->addFieldToFilter'price',array'from'=>0',to'=>5->setPageSize5;你是对的,状态和可见性过滤器阻止范围显示。你知道为什么吗?事实上没有,我还没有尝试过这些类型的过滤器,只是发现了这个问题,我想到它们可能没有很好地初始化。我无法将它们的声明视为类属性。。。您是否检查了返回的值?