2016-07-01 9 views
0

Ich versuche, mehrere Instanzen des gleichen Modells mit JavaScript Append zu verwenden. Ich weiß jedoch nicht, wie ich das machen soll. Daher erstelle ich den folgenden Code.Yii2 mehrere Instanzen des gleichen Modells mit Javascript

JavaScript

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

Variable "c" eine Erhöhung der Laufnummer. Zum Beispiel, zum ersten Mal, wenn ich den Namen anhefte, wird "1_round" sein. und das zweite Mal wird "2_round" und so weiter.

-Controller

$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); 

Das Problem hier ist, es wird immer nur die letzte Schleife von Daten speichern und nicht jede Schleife von Daten. Bitte hilf mir dabei. Neu bei Yii2. Vielen Dank!

Antwort

0

Sie müssen neue Instanz von $model jedes Mal in Schleife

dh

$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); 

Sie analyize können schließlich initialisieren, wenn Modell gespeichert wird oder nicht, wenn nicht gespeichert, was die Fehler mit der $saved_array

sind
+0

OMG! Es klappt! Vielen Dank! :) – student2014

+0

Sie sind willkommen (Y) –

Verwandte Themen