在Magento 2中,您可以使用产品存储库按产品属性进行过滤吗?
在Magento 2中,您可以使用搜索条件对象
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
和一个仓库
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
提取对象列表
$searchCriteria->getPageSize(10);
$list = $productRepository->getList($searchCriteria);
但是,searchCriteria对象没有(似乎?)具有直接过滤功能。搜索条件类确实具有添加名为filterGroups的方法。
#File: lib/internal/Magento/Framework/Api/SearchCriteria.php
public function getFilterGroups()
{
$filterGroups = $this->_get(self::FILTER_GROUPS);
return is_array($filterGroups) ? $filterGroups : [];
}
public function setFilterGroups(array $filterGroups = null)
{
return $this->setData(self::FILTER_GROUPS, $filterGroups);
}
但是尚不清楚究竟是什么过滤组归功于PHP的无类型数组。
我如何使用Magento 2存储库执行类似的操作
- 向我展示所有带有[此特定SKU]的产品
- 显示[此日期]之后创建的所有产品
- 等等
2
看来,这些群组是Magento \ Framework \ Api \ Search \ FilterGroup的数组,后者依次具有\ Magento \ Framework \ Api \ Filter过滤器,可以使用\ Magento \ Framework \ Api \ FilterBuilder构建过滤器,并且condition_type位于“ eq”,“ neq”,“ gt”等形式。但是找不到支持的条件类型列表:\
—
Petar Dzhambazov
实际上,可以在Magento / Framework / Api / CriteriaInterface.php:79上找到类似列表的内容
—
Petar Dzhambazov