【发布时间】:2021-07-25 10:34:57
【问题描述】:
我遇到了这个问题,当我创建一个带有活动表单的模式时,我在不提交表单的情况下关闭了该模式,当我尝试重新创建它时它不会被重置。
基本上,我想通过更改按钮发送到控制器的参数来加载不同的模型,同时使用相同的操作。但是看起来该操作只执行了第一次。
我对按钮使用以下代码
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Create <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><?php echo Html::a('From Library', ['/library/physical/create', 'params' => ['type_id' => PhysicalTypes::ControlModule]]);?></li>
<li class="divider"></li>
<li><?php echo Html::a('Area', ['create-modal','params' => ['type_id' => PhysicalTypes::Area,]], ['data-toggle'=>'modal', 'data-target'=>'#modalphysicalcomponentcreate']);?></li>
<li><?php echo Html::a('Process Cell', ['create-modal','params' => ['type_id' => PhysicalTypes::ProcessCell,]], ['data-toggle'=>'modal', 'data-target'=>'#modalphysicalcomponentcreate']);?></li>
<li><?php echo Html::a('Unit', ['create-modal','params' => ['type_id' => PhysicalTypes::Unit,]], ['data-toggle'=>'modal', 'data-target'=>'#modalphysicalcomponentcreate']);?></li>
<li><?php echo Html::a('Equipment', ['create-modal','params' => ['type_id' => PhysicalTypes::Equipment,]], ['data-toggle'=>'modal', 'data-target'=>'#modalphysicalcomponentcreate']);?></li>
<li><?php echo Html::a('Control Module', ['create-modal','params' => ['type_id' => PhysicalTypes::ControlModule,]], ['data-toggle'=>'modal', 'data-target'=>'#modalphysicalcomponentcreate']);?></li>
</ul>
</div>
然后在我的控制器中我使用以下内容
public function actionCreateModal(array $params)
{
...
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->renderAjax('_modal_form', [
'actionTitle' => 'Create new',
'model' => $model,
]);
}
最后我的模态代码被渲染了。
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use yii\helpers\StringHelper;
?>
<?php
$form = ActiveForm::begin(
['enableClientValidation' => true, 'options' => ['id' => 'modal-form']]);
?>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title"><?= $actionTitle ?> <?= StringHelper::basename(get_class($model)); ?></h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<?php echo Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
<?php ActiveForm::end(); ?>
所以我希望能够关闭窗口,单击不同的按钮,然后将新模型加载到模态中。 感谢所有帮助!
【问题讨论】:
标签: php yii2 bootstrap-modal