2016-10-18 4 views
1

は私のコードですmagento 2コレクションで空のデータが得られますか?

$ 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(); 

私は入れて取得してい下記

アレイ(0){}

クエリ:main_tableを選択します。 order_id,main_tablepayment_id,main_tableis_closed,main_tabletxn_id,main_table。私はMySQLでクエリを実行するとmain_table WHERE(= 9706 order_id)AS sales_payment_transaction FROM transaction_id

、私は、データが適切にフェッチ取得しています。

しかし、私はのgetData()を使用して結果($ trans_result)の出力を確認してください。 空のデータが表示されています。

すべてのヘルプは理解されるであろうか。? ありがとうございます。

+0

を使用していますか? – Kul

答えて

1

私はその属性内にあると確信しています。簡単にする。

$order_id = 9706; 
$trans_result = $transObj->getCollection() 
          ->addFieldToFilter('order_id', array('eq' => $order_id)) 

テーブルのすべての列を使用しているため、同じ値にする必要があります。したがって、SELECT句にフィールドを追加する必要はありません。あなたが選択したい場合はscpecific列は

$trans_result = $trans_result->addFieldToSelect('payment_id') 

注意を使用していますが、私は、foreachループを使用してデータを参照しようとしたことがありaddFieldToSelect代わりのaddAttributeToSelect

+0

ありがとうレオン。私はaddFieldToFilterだけを使用してチェックしても、まだ空の配列を取得しています。 –

+0

mysideから間違いです。それはうまく働いています。ご協力いただきありがとうございます。 –

関連する問題