假设有一张文章表,需要关联文章分类表,关联显示分类
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]);