后台管理前台会员发布的文章,可以通过YII2自带攻击gii中的crud生成,既方便又省事。

修改后台文章列表显示界面,将不需要显示的去掉,同时做语言包映射将英文内容改为中文显示。
文章列表界面修改(backend/views/posts/index.php),修改后的代码:
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $searchModel common\models\PostsSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = '文章列表';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="posts-model-index">
<h1><?= Html::encode($this->title) ?></h1>
<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'title'=>[
'attribute'=>'title',
'format'=>'raw',
'value'=>function($model){
return '<a href="http://frontend2.yii.com'.Url::to(['posts/view','id'=>$model->id]).'">'.$model->title.'</a>';
}
],
//'summary',
//'content:ntext',
//'label_img',
'cat.cat_name',
//'user_id',
'user_name',
'is_valid'=>[
'attribute'=>'is_valid',
'value'=>function($model){
return ($model->is_valid==1) ? '发布':'审核';
},
'filter'=>['0'=>'审核','1'=>'发布'],
],
'created_at:datetime',
//'updated_at',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
</div>
语言包映射:(语言包映射需要配置)
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => Yii::t('common', 'id'),//不配置语言包也可以直接在这里设置对应的中文
'title' => Yii::t('common', 'title'),
'summary' => Yii::t('common', 'summary'),
'content' => Yii::t('common', 'content'),
'label_img' => Yii::t('common', 'label_img'),
'cat_id' => Yii::t('common', 'cat_id'),
'user_id' => Yii::t('common', 'user_id'),
'user_name' => Yii::t('common', 'user_name'),
'is_valid' => Yii::t('common', 'is_valid'),
'created_at' => Yii::t('common', 'created_at'),
'updated_at' => Yii::t('common', 'updated_at'),
];
}
通过关联关系获取文章分类
/**
* 获取文章分类关联
* @return \yii\db\ActiveQuery
*/
public function getCat()
{
return $this->hasOne(CatsModel::className(),['id'=>'cat_id']);
}
文章修改调整
<div class="posts-model-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'cat_id')->textInput() ?>
<?= $form->field($model, 'is_valid')->dropDownList(['0'=>'审核','1'=>'发布']) ?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
后台界面效果:

