2016-04-20 27 views
1

Ich habe eine Dropdownliste in einer aktiven Form Ich zeige die Daten korrekt an, aber wenn ich den Wert des ausgewählten Wertes der Dropdownliste einfügen möchte, ist der Wert Null.yii2 Nullwert in der Dropdownliste

In meinem Controller:

 $model = new AjoutRessourceForm(); 

     if ($model->load(Yii::$app->request->post()) && $model->validate()) 
     { 
      if ($ressource = $model->addRessource()) 
      { 
       return $this->redirect(['form/ressource']); 
      } 
     } 
     $sql = "select idEtatRessource, nomEtatRessource from etat_ressource"; 
     $command = $connection->createCommand($sql); 
     $data = $command->queryAll(); 
     $etats = ArrayHelper::map($data, 'idEtatRessource', 'nomEtatRessource'); 

     return $this->render('/form/newRessource', ['model' => $model, 'etats' => $etats, 'types' => $types]); 

Aus meiner Sicht:

<?= $form->field($model, 'idEtatRessource')->dropDownList($etats) ?> 

Und im Modell:

$histEtatRessource     = new HistoriqueEtatRessource(); 
    $histEtatRessource->idRessource  = $this->idRessource; 
    $histEtatRessource->idEtatRessource = $this->idEtatRessource; 

    if ($ressource->save() && $histEtatRessource->save()) 
    { 
     return $ressource; 
    } 

Ich habe einen IntegrityException, weil der Wert von $this->idEtatRessource null ist (Primärschlüssel in meinem db)

Danke!

--- EDIT ---

Als ich $_POST['idEtatRessource'] geben statt $this->idEtatRessource es funktioniert und ich weiß nicht, warum! Hilfe bitte;)

+0

Wie werden Sie die POST-Daten in das Modell geladen? – Alex

+0

Ich habe meine Antwort bearbeitet –

+0

Sie speichern den Wert von der Funktion addRessource? ... bitte zeigen Sie den zugehörigen Code an .. sonst .. erklären, wie Sie die Daten speichern .. – scaisEdge

Antwort