2015-12-08 4 views
2

Я хочу создать 2 записи одного и того же стола с той же кнопкой. Стол:Yii2: 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, потому что, когда я вставляю свои поля, записи дублируются, в этом примере я вставляю:

  • firstvalue (VALOR_CAT_CONSECUENCIA): 1
  • SecondValue (ESTADO): 1
  • thirtvalue (VALOR_CAT_CONSECUENCIA) 78
  • fourthvalue (ESTADO): 78

enter image description here

+0

мольбы вы можете объяснить больше о вашей цели ?. –

+0

Вы хотите, чтобы две точки botton были двумя разными мишенями или одним дном, которые вызывают действие, выполняющее два шага. ? – scaisEdge

+0

Я хочу вставить 2 записи (n записей) таблицы (consecuencia) в том же виде. – mhplur

ответ

1

You следует использовать табличную форму концепции

Ваш контроллер

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(); ?> 
Смежные вопросы