在cms开发中,通常需要在新闻列表显示新闻分类,在yii中,为我们提供了hasOne来显示分类。
建立数据库时建立好相应的外键关系,然后使用yii为我们提供的gii,很方便的为我们生成了对应的hasOne和hasMany:
就像这样:
News ActiveRecord:
public function getC()
{
return $this->hasOne(Category::className(), ['cid' => 'cid']);
}
Category ActiveRecord
public function getNews()
{
return $this->hasMany(News::className(), ['cid' => 'cid']);
}
yii为我们提供了with函数:
那我们在新闻的index中就可以这样写:
将:
$dataProvider = new ActiveDataProvider([
'query' => News::find(),
]);
$dataProvider = new ActiveDataProvider([
'query' => News::find()->with('c'),
]);
c就是 getC()中的c,记住大写改为小写
在gridview中就可以这样使用:
'c.cat_name',