假設有一張文章表,需要關聯文章分類表,關聯顯示分類
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]);