问题描述:我想让每个页面都有一个添加数据的按钮,点击按钮可开模态框进行添加数据。 我目前是这样实现的: 控制器
public function actionIndex()
{
$model = new Post();
$model->user_id = Yii::$app->user->identity->user_id;
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$model = new Post();
}
$searchModel = new PostSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('create', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'model' => $model,
]);
}
视图
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#addModal"> 添加 </button>
<div class="post-form">
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'post_text',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
<div id="addModal" class="modal fade" role="basic" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<?php $form = ActiveForm::begin(['options' => ['data-pjax' => true ]]); ?>
<?= $form->field($model, 'post_text')->textInput(['maxlength' => 200]) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
</div>
问题:这样做需要为每个页面添加相同的代码,有什么简单高效的方法吗? 注:代码可能有错误,主要是问问思路