yii2中gridview多表关联显示并可查询

假设有一张文章表,需要关联文章分类表,关联显示分类

    public function getArticlecategory(){
        // hasOne要求返回两个参数 第一个参数是关联表的类名 第二个参数是两张表的关联关系 
        // 这里id是ArticleCategory表的id, 关联article表的id 
        return $this->hasOne(ArticleCategory::className(), ['id' => 'category_id']);
    }

index.php:

    <?= GridView::widget([
        'columns' => [
            [
                'attribute'=>'name',
                'value'=>'articlecategory.name',/*这里的articlecategory是article模型里面关联的方法名,除了首字母,其他都要完全一样,否则会报错*/

                'label'=>'文章所属分类'
            ],
        ],
    ]); ?>

articlesearch文件:
在articlesearch方法中加入

    public $name;
    public function rules()
    {
        return [
        // other rules
            ['name', 'safe'],
        ];
    }

    $query->joinWith(['articlecategory']);/*这里的articlecategory是article模型里面关联的方法名,除了首字母,其他都要完全一样,否则会报错*/
    $query->select("article.*,article_category.name");
    /*其他代码*/
    $query->andFilterWhere(['like', 'article_category.name', $this->name]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值