2016-06-10 52 views
0

我是yii2中的總新手。我在我的控制器中有一個actionView,我通過了$id。我寫了一個查詢,它返回來自3個表的連接。我想知道如何在我的視圖中顯示來自這些行的特定列,名稱爲view。這是我的actionView ...由查詢返回的顯示行

public function actionView($id) 
{ 

    $select = [ 
     'user.username', 
     'package_subscriptions.package_id', 
     'order.order_number', 
    ]; 
    $query = new Query; 
    $query->select($select) 
      ->from('order') 
      ->innerJoin(['user'],'order.user_id = user.id') 
      ->innerJoin(['package_subscriptions'],'order.user_id = package_subscriptions.user_id') 
      ->all(); 

    return $this->render('view', [ 
     // What should I write here 
    ]); 
} 

回答

1

進口查詢類

use yii\db\Query; 

代碼在你的actionView

public function actionView($id) 
{ 

    $select = [ 
     'user.username as username', 
     'package_subscriptions.package_id as package_id', 
     'order.order_number as order_number', 
    ]; 
    $query = new Query; 
    $query->select($select) 
      ->from('order') 
      ->innerJoin(['user'],'order.user_id = user.id') 
      ->innerJoin(['package_subscriptions'],'order.user_id = package_subscriptions.user_id'); 

    $command = $query->createCommand(); 
    $list = $command->queryAll(); 

    return $this->render('view', [ 
     'data'=>$list, // pass data to view 
    ]); 
} 

查詢返回陣列,您可以在視圖中使用如下:

foreach($data as $val) 
{ 
    echo $val['username']; 
    echo $val['package_id']; 
    echo $val['order_number']; 
} 
1

試試這個

public function actionView($id) 
{ 

    $select = [ 
     'user.username', 
     'package_subscriptions.package_id', 
     'order.order_number', 
    ]; 
    $query = new Query; 
    $results= $query->select($select) 
      ->from('order') 
      ->innerJoin(['user'],'order.user_id = user.id') 
      ->innerJoin(['package_subscriptions'],'order.user_id = package_subscriptions.user_id') 
      ->all(); 

    return $this->render('view', [ 
     'results'=>$results 
    ]); 
} 
view.php

<? 
foreach($results as $result){ 
?> 
username:<?=$result['username']?> 
<br> 
Package id:<?=$result['package_id']?> 
<br> 
order number:<?=$result['order_number']?> 
<? 
} 
?>