วิธี Wirte OR / และ Query ใน magento2.
Aug 17 2020
main_table
SELECT sku
, main_table
. order_id
, main_table
. parent_item_id
, main_table
. name
, main_table
. product_id
จากsales_order_item
AS main_table
WHERE ( order_id
= '3') และ ( parent_item_id
เป็นโมฆะ) และ (( sku
LIKE '% 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