php – 如何在yii2中显示网格视图中另一个表的数据?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何在yii2中显示网格视图中另一个表的数据?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在sITeController中,我编写查询并将dataPRovider数组传递给index.PHP显示包含在表格中.在index.PHP中,我想显示成员名而不是memberID.为此,我编写了内部查询,并成功在命令提示符下成功运行.这里我无法打印名字而不是’member id’

public function actionIndex()
      {              
     $query = new \yii\db\Query;
      $query->select(['member.FirstName','complaint.practiceCode','complaint.id','complaint.description','member.firstName'])
           ->From(['complaint'])
           ->innerJoin(['member','complaint.memberID = member.id'])
           ->groupBy(['complaint.id'])
           ->where(['complaint.deleted' => 'N']);
     $query->createCommand();

这里我通过创建$dataProvider4来传递数据,但是我无法设置firstName而不是memberID的值.

$dataProvider4= new ActiveDataProvider([
            'query' => $query,'pagination' => false,]);

        return $this->render('index',[
       'dataProvider4'=>$dataProvider4]);

<?= GridView::widget([
    'dataProvider'=>$dataProvider4,'summary'=>'total'.'&amp;nbsp<b>'.$complaintModel.'</b>&nbsp'.'Complaints','columns' => [
       ['class' => 'yii\grid\SerialColumn'],'practiceCode',// 'memberID','description','status',],]); ?>

我通过dataProvider传递数据.

解决方法

由于您使用的是强大的框架,因此您最好让框架为您执行复杂的操作,而不是尝试编写自己的查询.这就是Yii的设计目标.在你的行动中尝试这一点.

public function actionIndex()
    {              
    $query = Member::find()->
        ->select(['firstName',complaint.practiceCode',complaint.id','complaint.description'])
        ->groupBy(['complaint.id'])
        ->joinWith('complaints')//Tells Yii to use the complains relation that we define below. By default it is an inner join
        ->where(['complaint.deleted' => 'N']);

$dataProvider= new ActiveDataProvider([
    'query' => $query,]);

return $this->render('index',[
    'dataProvider4'=>$dataProvider]);

在您的模型中,您需要定义可在查询中使用的关系;

public function getComplaints(){
    return $this->hasmany(Complaints::classname(),'memberID' => 'id');
}

这很有用,因为它可以让您在不必编写自己的查询的情况下获得投诉.

Yii将为您整理所有列名,并编写查询.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何在yii2中显示网格视图中另一个表的数据?全部内容,希望文章能够帮你解决php – 如何在yii2中显示网格视图中另一个表的数据?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。