Como escrever OU/e consultar em magento2.?
Aug 17 2020
SELECIONE 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') E ( parent_item_id
IS NULL) 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.'%'));
}
Respostas
1 NiravPatel Aug 17 2020 at 18:02
se você deseja fazer ou condicionar na coleção, siga as etapas abaixo.
$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();
você precisa passar o argumento da matriz em addFieldToFilter para aplicar ou condicionar.
Espero que isto funcione para voce!
Obrigado e cumprimentos, Nirav Patel
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?