在添加文章的时候,文章的分类通常是可以选择的,而上一篇文章实现的文章创建功能似乎不能选择,需要自己手动输入,这非常不方便,不方便管理也不方便阅读。今天,这里就教教大家如何在创建文章中获取文章的分类。

1、用gii创建CatsModel,与用gii创建PostsModel的操作一样(创建好之后记得修改CatsModel的继承类为BasesModel)

2、在CatsModel中添加一个获取所有分类的静态方法

public static function getAllCats()
{
$cat = ['0' => '暂无分类'];
$res = self::find()->asArray()->all();
if ($res){
foreach ($res as $k=>$list){
$cat[$list['id']] = $list['cat_name'];
}
}
return $cat;
}3、在PostsController控制器actionCreate方法中调用获取所有分类的静态方法,然后将获取到的分类渲染给create.php页面

/**
* 文章创建
*/
public function actionCreate()
{
$model = new PostsForm();
//获取所有分类
$cat = CatsModel::getAllCats();
return $this -> render('create',['model' => $model,'cat' => $cat]);
}4、修改渲染页面,把分类改为下拉选择的形式
#修改页面 frontend/views/posts/create.php <?= $form->field($model,'cat_id')->dropDownList($cat) ?>

获取所有分类后的分类选择效果:

