我看到一些链接说Yii2唯一验证仅适用于Ajax验证(但我没有找到任何最佳实践。)。所以我要求在Yii2中进行非ajax验证
我的模型规则是
['name', 'unique', 'targetAttribute' => 'function_id','message' => 'name must be unique.'],
我的控制器功能是正常的actionCreate()
有人有解决方案吗?在此先感谢
编辑:对于Ajax 好的我没有,我的控制器代码现在是
$model = new JobFunctionRole();
$model->scenario = 'insert';
$jobFunction=JobFunction::find()->all();
if(Yii::$app->request->post()){
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
if ($model->save()) {
return $this->redirect(['view', 'id' => $model->job_function_role_id]);
}
} else {
return $this->render('create', [
'model' => $model,'jobFunction'=>$jobFunction
]);
}`
但页面重定向并显示空白页。
答案 0 :(得分:0)
可能你必须检查两个togheter
['a1', 'unique', 'targetAttribute' => ['a1', 'a2']]
[
'name', 'unique',
'targetAttribute' => ['name','function_id'],
'message' => 'name must be unique.'
],