Header Ads

Tổng hợp những condition thường sử dụng trong magento 2

Tổng hợp những condition thường sử dụng trong magento 2


Tổng hợp những condition thường sử dụng trong magento 2


Condition Notes
eq Equals.
finset A value within a set of values
from The beginning of a range. Must be used with to
gt Greater than
gteq Greater than or equal
in In. The value can contain a comma-separated list of values.
like Like. The value can contain the SQL wildcard characters when like is specified.
lt Less than
lteq Less than or equal
moreq More or equal
neq Not equal
nfinset A value that is not within a set of values
nin Not in. The value can contain a comma-separated list of values.
notnull Not null
null Null
to The end of a range. Must be used with from

Cách 1 sử dụng condition trong backend, truy vấn vào db:


Ví dụ chúng ta sử dụng condition lấy ra các sản phẩm có id là: 1,2,3

1, Chúng ta inject thằng Product Collection vào để test:

  \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $collection

2, Chúng ta sử dụng Product Collection và query với condition:

$products = $this->collection->create()->addFieldToFilter('entity_id', ['in' => [1,2,3]]);

Cách 2 sử dụng condition để truy vấn Api:


Demo chúng ta sẽ lấy một sản phẩm có SKU bắt đầu là: WSH và giá của sản phẩm đó < 30$

GET /rest//V1/products?
searchCriteria[filter_groups][0][filters][0][field]=sku&
searchCriteria[filter_groups][0][filters][0][value]=WSH%2531%25&
searchCriteria[filter_groups][0][filters][0][condition_type]=like&
searchCriteria[filter_groups][1][filters][0][field]=price&
searchCriteria[filter_groups][1][filters][0][value]=30&
searchCriteria[filter_groups][1][filters][0][condition_type]=lt



Hệ thống tạo ra cái mảng như thế này, nhìn cho dễ hình dung :

searchCriteria => [
  'filterGroups' => [
    0 => [
      'filters' => [
         0 => [
           'field' => 'sku',
           'value' => 'WSH%31%',
           'condition_type' => 'like'
         ]
    1 => [
      'filters' => [
         0 => [
           'field' => 'price',
           'value' => '30',
           'condition_type' => 'lt'
         ]
      ]
    ]
  ]


No comments