有许多建议可以以此开始控制器代码:
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(['index']);
}
}
return $this->renderAjax('create', [
'model' => $model,
]);
我的问题是可以在调用“ return ActiveForm :: validate($ model)”下放置什么代码,以成功执行$ model->成功验证后保存?
答案 0 :(得分:0)
我找到了可行的解决方案,这是链接:
yii2 form input ajax validation will not perfom
请注意,我最初在表单上附加了一个ajax发布脚本,因此不需要此脚本,因此我将其删除。似乎无论如何提交表单,enableAjaxvalidation都会以AJAX请求的形式发送帖子。
此外,它必须在控制器和表单页面中:
使用yii \ widgets \ ActiveForm;
答案 1 :(得分:0)
if($model->save(false)){
return $this->redirect(['index']);
}
}
return $this->renderAjax('create', [
'model' => $model,
]);