在我的应用程序中,我需要创建一个包含少量列的表(CGridView)和一个带按钮的列。当我单击按钮时,它应该对模型“studentKurs”执行创建操作。所以,我将参数传递给表,正如我所看到的,函数被执行。失败的是我的模型验证,即使我通过GET传递参数并在我创建的actionCreateCustom方法中检索它们并用它们填充$ model字段。我错过了什么?
以下是我创建网址的表格中的部分:
array(
'class' => 'CButtonColumn',
'template' => '{add}',
'buttons' => array(
'add' => array(
'url' => 'Yii::app()->createUrl("studentKurs/createCustom",
array(
"student_id" => $data[\'id\'],
"predmet_naziv" => $_GET[\'predmet_naziv\'],
"id_stud_prog" => $data[\'id_stud_prog\'],
"id_nivo_stud" => $data[\'id_nivo_stud\'],
"stud_god_god" => $_GET[\'stud_god_god\']
)
)',
),
),
),
来自控制器的功能:
public function actionCreateCustom($student_id, $predmet_naziv, $id_stud_prog, $id_nivo_stud, $stud_god_god)
{
$model=new StudentKurs;
$model['predmet_naziv'] = $predmet_naziv;
$model['id_stud_prog'] = $id_stud_prog;
$model['id_nivo_stud'] = $id_nivo_stud;
$model['stud_god_god'] = $stud_god_god;
$model['student_id'] = $student_id;
$model['ocjena'] = '';
$model['polozeno'] = '';
if($model->validate())
{
echo "OK";
$this->saveModel($model);
}
else
{
echo "ERROR";
}
//$this->refresh();
}
ERROR消息在我的屏幕上回显。有什么想法吗?
答案 0 :(得分:1)
您可以通过这种方式获得验证错误
if ($model->validate()) {
// all inputs are valid
} else {
// validation failed: $errors is an array containing error messages
$errors = $model->errors;
var_dump($errors);
}
或(琐碎的方式)你可以有选择地评论你的规则,以便调查责任人。