dsaj20411 2016-04-20 00:52
浏览 87
已采纳

yii2下拉列表中的null值

I have a dropdown list in an active form i display the data correctly but when I want to insert the value of the selected value of the dropdownlist the value is null.

In my 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]);

In my view :

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

And in the model :

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

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

I have an IntegrityException because the value of $this->idEtatRessource is null (primary key in my db)

Thanks !

---EDIT---

When I passed $_POST['idEtatRessource'] instead of $this->idEtatRessource it work and I don't know why ! Help please ;)

展开全部

  • 写回答

1条回答 默认 最新

  • douxie5176 2016-04-20 23:41
    关注

    I find where my problem was :

    I didn't have rules validations for those fields so when I loaded the model values of those two fields where null.

    Source :model->attributes in Yii2 always has NULL value

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部