下拉列表中的 yii2 空值

yii2 null value in dropdownlist

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

在我的控制器中:

        $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->idEtatRessource 的值为空(我的数据库中的主键)

谢谢!

---编辑---

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

我找到了我的问题所在:

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

来源:model->attributes in Yii2 always has NULL value