1

我有一个活动表单中的下拉列表,我正确显示了数据,但是当我想插入下拉列表的选定值的值时,该值为空。

在我的控制器中:

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

在我看来 :

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

在模型中:

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

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

我有一个 IntegrityException,因为值为$this->idEtatRessourcenull(我的数据库中的主键)

谢谢 !

- -编辑 - -

当我通过$_POST['idEtatRessource']而不是$this->idEtatRessource它工作时,我不知道为什么!请帮忙 ;)

4

1 回答 1

0

我发现我的问题出在哪里:

我没有对这些字段进行规则验证,所以当我加载这两个为空的字段的模型值时。

来源:Yii2 中的 model->attributes 总是有 NULL 值

于 2016-04-21T07:41:56.570 回答