我遇到了这个问题我将模型中的字段设置为唯一。以下是我的模特:
[['user_id'], 'unique'],
[['country_id'], 'unique'],
在我的控制器中
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}
将显示唯一验证器。但当我将控制器更改为:
if ($model->load(Yii::$app->request->post())) {
$model->country_id = 3;
$model->save();
}
我的应用程序未显示验证程序。相反,它说它保存。
这是来自yii2的错误,或者我在这里做错了什么。
谢谢。
答案 0 :(得分:0)
如果修改模型的验证有错误,则$ model-> save()应返回false 所以你可以检查这个条件,以显示一个正确的消息表格(或妥善管理这种情况)
if ($model->load(Yii::$app->request->post())) {
$model->country_id = 3;
if (!$model->save()){
return $this->render('yoru_message_form');
}
}
答案 1 :(得分:0)
if ($model->load(Yii::$app->request->post())) {
$model->country_id = 3;
if($model->validate() == true){
$model->save();
}
else{
$error = $model->getErrors();
}
}
$error
将返回模型错误。