2016-04-20 5 views
0

受注および受注製品。注文表の列joinWith()を取得する方法。上記のクエリで内部のベーステーブルの列を取得する方法joinWith()yii2

 Order::find() 
     ->select(['order.*']) 
     ->joinWith(['orderProducts' => function($q){ 
       $q->select("order_id, product_id, product_name, product_price, quantity, CONCAT(order.currency, total_price) AS total_price"); 
      }]) 

それはこのエラーを示しています

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'order.currency' in 'field list'\nThe SQL being executed was: SELECT order.currency, id, CONCAT('http://192.168.1.114:1090/backend/web/images/products/',image) AS image, sku FROM `POS_1hj2gfru`.`product` WHERE `id`='3'" 

答えて

1

Order::find() 
    ->select(["order.*","orderProducts.order_id" , "orderProducts.product_id" , "orderProducts.product_name" , "orderProducts.product_price" , "orderProducts.quantity" , "orderProducts.CONCAT(orderProducts.order.currency, orderProducts.total_price) AS total_price"]) 
    ->joinWith('orderProducts', false) 
    ->asArray() 
    ->all(); 
+0

を使用してくださいeagerLoadingに取得することが可能ですか? – Sivabalan

+0

はいyii2の可能性 –

+0

私の質問では、eagerloadingのみを使用していますが、そのショーの列にエラーが見つかりませんでした。どうすればいいのか教えていただけますか?上記のコードを試してみましたか? – Sivabalan

関連する問題