ใน 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