2016-07-01 6 views
0

Я пытаюсь использовать несколько экземпляров одной и той же модели, используя javascript append. Однако я не знаю, как это сделать. Поэтому я создаю следующий код.Yii2 несколько экземпляров той же модели с javascript

Javascript

var div_input = $('#input'); 
div_input.append('<input type="hidden" name="'+c+'_round" value="'+c+'" />'); 

переменной "с" представляет собой увеличение числа работает. например, в первый раз, когда я добавлю имя будет «1_round». и второй раз будет «2_round» и так далее.

Контроллер

$loop = true; 
    $i = 0; 
    do{ 
     $i++; 
     if (!empty($_POST[$i . "_round"])) 
     { 
      $round = $_POST[$i . "_round"]; 
      $model->model_round= $round; 
      $model->save(); 
     }else{ 
      $loop = false; 
     } 
    }while($loop); 

Проблема здесь в том, что всегда будет сохранять только последний цикл данных, а не каждый цикл данных. Пожалуйста, помогите мне с этим. Новое для Yii2. Благодаря!

ответ

0

Вы должны инициализировать новый экземпляр $model каждый раз в цикле

т.е.

$saved_array = []; 
    $loop = true; 
    $i = 0; 
    do{ 
     $i++; 
     if (!empty($_POST[$i . "_round"])) 
     { 
      $model = new model(); 
      $round = $_POST[$i . "_round"]; 
      $model->model_round= $round; 
      if($model->save()) { 
       $saved_array[$model->id] = True; 
      } else { 
       $saved_array[$model->id] = $model->getErrors(); 
      } 
      unset ($model); 
     }else{ 
      $loop = false; 
     } 
    }while($loop); 

Вы можете, наконец analyize, если модель будет сохранена или нет, если не сохраняются какие ошибки с $saved_array

+0

OMG! оно работает! благодаря! :) – student2014

+0

Добро пожаловать (Y) –

Смежные вопросы