#magento #magento2
#magento #magento2
Вопрос:
ниже мой код:
$transObj = $this-> _objectManager-> создать(‘Magento Продажи Модель Заказ Оплата Транзакция’);
$order_id = 9706;
$trans_result = $transObj->getCollection()
->addAttributeToSelect(
'order_id'
)
->addAttributeToSelect(
'payment_id'
)
->addAttributeToSelect(
'is_closed'
)
->addAttributeToSelect(
'txn_id'
)
->addAttributeToSelect(
'transaction_id'
)
->addFieldToFilter(
'order_id',
array("eq" => $order_id)
);
var_dump($trans_result->getData());
echo "n Query:".$trans_result->getSelect();
ниже я получаю вывод в виде :
массив (0) { }
Запрос: ВЫБЕРИТЕ main_table
. order_id
, main_table
. payment_id
, main_table
. is_closed
, main_table
. txn_id
, main_table
. transaction_id
ИЗ sales_payment_transaction
КАК main_table
ГДЕ ( order_id
= 9706)
когда я запускаю запрос в Mysql, я получаю данные, полученные правильно.
Но когда я проверяю вывод результата ($ trans_result) с помощью getData(); я получаю пустые данные.
Любая помощь будет оценена.? Заранее спасибо.
Комментарии:
1. Пытались просмотреть данные с помощью цикла foreach?
Ответ №1:
Я почти уверен, что это в атрибутах. Сделайте это проще.
$order_id = 9706;
$trans_result = $transObj->getCollection()
->addFieldToFilter('order_id', array('eq' => $order_id))
Вам нужно то же значение, потому что вы используете все столбцы из таблицы, поэтому нет необходимости добавлять поля в предложении SELECT. Хотя, если вы хотите выбрать определенный столбец, используйте
$trans_result = $trans_result->addFieldToSelect('payment_id')
Обратите внимание, что я использую addFieldToSelect вместо addAttributeToSelect
Комментарии:
1. Большое спасибо, Леон. Я проверил, используя только addFieldToFilter, но все равно получаю пустой массив.
2. Это ошибка с моей стороны. Он отлично работает, приятель. спасибо за вашу помощь.
3. @DineshArumugam — В чем была ошибка