2016-06-10 57 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']?> 
<? 
} 
?>