Получите коллекцию заказов, за исключением отмененного заказа в Magento 2
У меня есть коллекция заказов со следующим кодом:
$orders = $objectManager->create('Magento\Sales\Model\Order')->getCollection();
Который работает нормально. Проблема в том, что он возвращает все типы заказов, включая обработку '', ' отменено' и т.д. Я не хочу, чтобы отмененный заказ был в этой коллекции.
Я не знаю, как исключить отмененный заказ в приведенном выше коде.
Надеюсь, кто-нибудь поможет.
1
Author: Arshad Hussain, 2019-04-04
2 answers
Попробуйте это,
$orders = $objectManager->create('Magento\Sales\Model\Order')->getCollection();
$orders->addFieldToSelect('*')->addFieldToFilter('status', array('in' => array(complete,processing)));
Статус не в отмененном порядке попадет в коллекцию.
Не уверен в названии статуса отменено убедитесь, что вы используете точное имя в таблице sales_order таблицы.
3
Author: Prathap Gunasekaran, 2019-04-05 10:49:11
Это не лучший способ получить коллекции в M2 с помощью диспетчера объектов. Вместо этого используйте для этой цели фактор сбора. Вот краткий пример:
use Magento\Sales\Model\ResourceModel\Order\CollectionFactory;
class SomeClass
{
...
public function __construct(
...
CollectionFactory $orderCollectionFactory
...
) {
...
$this->collectionFactory = $orderCollectionFactory;
...
}
...
public function getOrders(){
$orders = $this->collectionFactory()->create()
->addFieldToSelect('*')
->addFieldToFilter('status', ['neq' => 'cancelled']);
return $orders;
}
}
3
Author: Kirill, 2019-04-04 13:57:34