您的位置 首页

Yii grid view 关联其他表的字段

举例用户和用户组关联: user表字段为: id,username,group_id,email,create…

举例用户和用户组关联:
user表字段为:

id,username,group_id,email,created_at

user_group表字段为:

id,group_code

后台显示 user grid 的时候用户组一列想显示 group_code 而不是 group_id
修改如下:
在models\User.php 中添加函数:

public function getUserGroup(){
    return $this->hasOne(UserGroup::className(),['id'=>'group_id']);
}

之后修改models\UserSearch.php
先添加 成员变量

pulbic $group_code;
// 修改 rules 函数 为group_code添加rules 下面一行代码根据实际修改即可
[['group_code'], 'safe']

修改 search 函数,添加代码:

$query->joinWith(['userGroup as ug']);

想让其可以排序则添加代码:

// 用户组排序根据用户组对应的id排序
$dataProvider->setSort([
    'attributes' => [
        'id',
        'username',
        'group_code' => [
            'asc' => ['ug.id' => SORT_ASC],
            'desc' => ['ug.id' => SORT_DESC],
        ],
        'email',
    ]
]);

添加过滤:

$query->andFilterWhere(['like', 'ug.group_code', $this->group_code]);

最后前天添加显示即可,修改文件 views\user\index.php, columns 里面添加

[
    'label'=>'用户组',
    'attribute' => 'group_code',
    //'value' => 'userGroup.group_code',
    'value' => function ($model){
        return $model->userGroup->group_code;  // 匿名函数方式自定义显示的值
    },
],

打完,收工!

此文章通过 python 爬虫创建,原文是自己的csdn 地址: Yii grid view 关联其他表的字段

本文来自网络,不代表找知博客立场,转载请注明出处:http://zhaozhiyong.cn/46.html

作者: 于老大

关注微博
返回顶部
//