magento 2集合提供空数据?

时间:2016-10-18 12:50:41

标签: magento magento2

下面是我的代码:

$ 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_tableorder_idmain_tablepayment_idmain_tableis_closedmain_table。{{ 1}},txn_idmain_table FROM transaction_id AS sales_payment_transaction WHERE(main_table = 9706)

当我在Mysql中运行查询时,我正在正确获取数据。

但是当我使用getData()检查结果的输出($ trans_result)时; 我得到空数据。

任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 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