下面是我的代码:
$ transObj = $ this-> _objectManager-> create('Magento \ Sales \ Model \ Order \ Payment \ Transaction');
$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();
下面我得出结论:
array(0){ }
查询:SELECT main_table
。order_id
,main_table
。payment_id
,main_table
。is_closed
,main_table
。{{ 1}},txn_id
。main_table
FROM transaction_id
AS sales_payment_transaction
WHERE(main_table
= 9706)
当我在Mysql中运行查询时,我正在正确获取数据。
但是当我使用getData()检查结果的输出($ trans_result)时; 我得到空数据。
任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分: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