2016-04-20 12 views
1

私はアクティブなフォームでドロップダウンリストを持っていますが、データを正しく表示していますが、ドロップダウンリストの選択値の値を挿入したい場合、値はnullです。yii2ドロップダウンリストのnull値

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

とモデルで:私の見解では

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

:私のコントローラで

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

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

$this->idEtatRessourceの値がnullであるので、私はIntegrityExceptionを持っています(私のdbの主キー)

ありがとうございました!

--- EDIT ---

私はそれが仕事と私はなぜ知らない$_POST['idEtatRessource']代わりの$this->idEtatRessourceを通過しました!私はどこヌルこれら二つのフィールドのモデル値をロードしたとき、私はとてもこれらのフィールドのためのルールの検証を持っていなかった

:私の問題があった場所、私が見つけ

+0

どのようにPOSTデータをモデルにロードしていますか? – Alex

+0

私の回答を編集しました –

+0

あなたは関数addRessourceによって値を保存しますか? ...関連するコードを表示してください..そうでなければデータを保存する方法を説明してください。 – scaisEdge

答えて

関連する問題