Я хочу создать 2 записи одной таблицы с одной и той же кнопкой.
Таблица является:
CREATE TABLE `consecuencia` (
`ID_CONSECUENCIA` int(11) NOT NULL AUTO_INCREMENT,
`VALOR_CAT_CONSECUENCIA` varchar(1024) NOT NULL,
`ESTADO` varchar(3) NOT NULL,
PRIMARY KEY (`ID_CONSECUENCIA`)
)
И это мой взгляд _form.php
<?php $form = ActiveForm::begin(); ?>
//FIRST RECORD
<?= $form->field($model, 'VALOR_CAT_CONSECUENCIA')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'ESTADO')->textInput(['maxlength' => true]) ?>
//SECOND RECORD
<?= $form->field($model1, 'VALOR_CAT_CONSECUENCIA')->textInput(['maxlength' => true]) ?>
<?= $form->field($model1, 'ESTADO')->textInput(['maxlength' => true]) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
это мой actionCreate моего контроллера:
public function actionCreate()
{
$model = new Consecuencia();
$model1 = new Consecuencia();
if ($model->load(Yii::$app->request->post()) && $model1->load(Yii::$app->request->post())
&& $model->save() && $model1->save()) {
return $this->redirect(['view', 'id' => $model->ID_CONSECUENCIA]);
} else {
return $this->render('create', [
'model' => $model,
'model1' => $model1,
]);
}
}
Мне нужен способ установить 2 модели внутри submitButton потому что, когда я вставляю свои поля, записи дублируются, в этом примере я вставляю:
Вы должны использовать концепцию табличной формы
Ваш контроллер
use yii\base\Model;
public function actionCreate()
{
for( $i = 0;$i <2;++$i){
$models[] = new Consecuencia();
}
if (Model::loadMultiple($models,yii::$app->request->post() ) &&
Model::validateMultiple($models)){
foreach($models as $model){
$model->save();
}
return $this->redirect(['view', 'id' => $model->ID_CONSECUENCIA]);
} else {
return $this->render('create', [
'models' => $models
]);
}
}
Ваш взгляд
<?php $form = ActiveForm::begin(); ?>
<?php foreach($models as $key => $model) {
<?= $form->field($model, "[$key]VALOR_CAT_CONSECUENCIA")->textInput(['maxlength' => true]) ?>
<?= $form->field($model, "[$key]ESTADO")->textInput(['maxlength' => true]) ?>
<?php } ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
Других решений пока нет …