在添加文章的时候,文章的分类通常是可以选择的,而上一篇文章实现的文章创建功能似乎不能选择,需要自己手动输入,这非常不方便,不方便管理也不方便阅读。今天,这里就教教大家如何在创建文章中获取文章的分类。
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) ?>
获取所有分类后的分类选择效果: