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]);
發佈了122 篇原創文章 · 獲贊 40 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章