有个项目正在使用Yii2开发,因为是第一次使用2代Yii,也算是不停的摸索。
昨天就遇到一个问题,谷歌也帮不上忙,就是自己在model里写的自定义validator不生效。
原本以为只是自定义无效,终于在使用unique这个yii原生validator时发现,问题的答案就是使用ajax validation。
为什么自定义validator和原生unique都无效呢?因为这些代码是保存在服务器上的,不使用ajax怎样能获取验证结果呢?
yii2中的controller也必须
use yii\web\Response; use yii\widgets\ActiveForm;
至于action里则应该使用如下语句,来自于yii2官方doc
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。