Trong Magento 2, bạn có thể sử dụng kho lưu trữ sản phẩm để lọc theo thuộc tính sản phẩm không?
Trong Magento 2, bạn có thể sử dụng một đối tượng tiêu chí tìm kiếm
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
và một kho lưu trữ
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
Để tìm nạp danh sách các đối tượng
$searchCriteria->getPageSize(10);
$list = $productRepository->getList($searchCriteria);
Tuy nhiên, đối tượng searchCriteria không (dường như?) Có khả năng lọc trực tiếp. Lớp tiêu chí tìm kiếm không có các phương thức để thêm một cái gì đó gọi là bộ lọc Nhóm
#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);
}
Nhưng không rõ chính xác, một nhóm bộ lọc là gì nhờ các mảng chưa được xử lý của PHP.
Làm cách nào tôi có thể sử dụng kho Magento 2 để làm những việc như
- Cho tôi xem tất cả các sản phẩm có [SKU cụ thể này]
- Cho tôi xem tất cả các sản phẩm được tạo sau [ngày này]
- v.v.
2
Có vẻ như các nhóm nói là một mảng của Magento \ Framework \ Api \ Search \ Filtergroup, lần lượt có \ Magento \ Framework \ Api \ Bộ lọc, các bộ lọc có thể được xây dựng với \ Magento \ Framework \ Api \ FilterBuilder và condition_type hình thức 'eq', 'neq', 'gt', v.v. Nhưng không thể tìm thấy danh sách các loại điều kiện được hỗ trợ: \
—
Petar Dzhambazov
Trên thực tế, một cái gì đó giống như một danh sách có thể được tìm thấy tại Magento / Framework / Api / CriteriaInterface.php: 79
—
Petar Dzhambazov