我试图在Magento 2中使用合适的skus获得所有产品。
我做了什么:
$currentSku = $_product->getSku();
$currentSku = substr($currentSku, 0, 3);
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
/** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */
$productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection');
$productCollection->addFieldToFilter('sku', array('like' => ''.$currentSku.' %'));
/** Apply filters here */
$productCollection->load();
该系列总是空的,但有合适的产品。
我尝试按名称过滤集合,这很有效。
答案 0 :(得分:0)
SKU后面有一个空格。 将其更改为
$productCollection->addFieldToFilter('sku', array('like' => ''.$currentSku.'%'));
答案 1 :(得分:0)
试试这个,
public function __construct(
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
....
) {
$this->_productCollectionFactory = $productCollectionFactory;
...
}
public function getProducts($currentSku)
{
/** @var $collection \Magento\Catalog\Model\ResourceModel\Product\Collection */
$collection = $this->_productCollectionFactory->create()
->addAttributeToSelect('*')
->addAttributeToFilter('status', array('eq' => 1))
->addAttributeToFilter('sku', array('like' => $currentSku.'%'))
->addStoreFilter()
->load();
return $collection;
}