В 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, а условие_типа находится в форма 'eq', 'neq', 'gt' и т. д. Но не удалось найти список поддерживаемых типов условий: \
—
Петар Джамбазов
На самом деле, что-то вроде списка можно найти на Magento / Framework / Api / CriteriaInterface.php: 79
—
Петар Джамбазов