magento2でOR /およびクエリを作成する方法。
Aug 17 2020
SELECT main_table
。sku
、main_table
。order_id
、main_table
。parent_item_id
、main_table
。name
、main_table
。product_id
FROM sales_order_item
AS main_table
WHERE(order_id
= '3')AND(parent_item_id
NULL IS)AND((sku
LIKE 'WSH06%')OR(sku
LIKE 'MS10の%')OR(sku
LIKE 'MT08%'))
$sku = ['WSH06','MS10','MT08']; $this->itemF ->create()->getCollection()
->addAttributeToSelect('sku')
->addAttributeToSelect('order_id')
->addAttributeToSelect('parent_item_id')
->addAttributeToSelect('name')
->addAttributeToSelect('product_id')
->addAttributeToFilter('order_id', array('eq' => $order_id)) ->addAttributeToFilter('parent_item_id', array('null' => true)); foreach ($sku as $key => $value) {
$collectionData->addFieldToFilter('sku',array('like' => $value.'%'));
}
回答
1 NiravPatel Aug 17 2020 at 18:02
コレクションを作成または調整する場合は、以下の手順に従う必要があります。
$sku = ['WSH06','MS10','MT08']; $this->itemF ->create()->getCollection()
->addAttributeToSelect('sku')
->addAttributeToSelect('order_id')
->addAttributeToSelect('parent_item_id')
->addAttributeToSelect('name')
->addAttributeToSelect('product_id')
->addAttributeToFilter('order_id', array('eq' => $order_id)) ->addAttributeToFilter('parent_item_id', array('null' => true)); $likeField = [];
$likeValue = [] foreach ($sku as $key => $value) {
$likeField[] = 'sku'; $likeValue[] = array('like' => $value.'%'); } $collectionData->addFieldToFilter($likeField, $likeValue);
echo $collectionData->getSelect()->__toString();
適用または条件付けするには、addFieldToFilterで配列引数を渡す必要があります。
これがあなたのために働くことを願っています!
ありがとう&よろしく、Nirav Patel