下拉列表中的 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
我在活动表单中有一个下拉列表,我正确显示了数据,但是当我想插入下拉列表的选定值的值时,该值为空。
在我的控制器中:
$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