วิธี Wirte OR / และ Query ใน magento2.

Aug 17 2020

main_tableSELECT sku, main_table. order_id, main_table. parent_item_id, main_table. name, main_table. product_idจากsales_order_itemAS main_tableWHERE ( order_id= '3') และ ( parent_item_idเป็นโมฆะ) และ (( skuLIKE '% WSH06') OR ( skuเช่น 'MS10%') OR ( skuเช่น '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