unique 验证问题,求大佬指点 [ 2.0 版本 ]
看了下手册也没见到相关说明的`
['name','unique','targetAttribute' => 'name', 'message' => '账号已存在']
如何设置。找到或没找到 数据都返回出结果
就是说找到数据,就说存在,没找到的话就说 不存在,
哪怕返回一个 1 也好啊
朕的大清完了 补充于 2018-11-30 02:36
111111111111
最佳答案
-
'unique'
是使用 Ajax 来判断的,你需要在 form 中使用enableAjaxValidation
将'name'
输入项的Ajax 打开:<?=$form->field($model, 'name',['enableAjaxValidation' => true])->textInput() ?>
这样你才能从前端获取到检测结果
共 7 条回复@朕的大清完了
['name','unique','targetAttribute' => 'name', 'message' => '账号已存在']
这个rule只有在Yii2的ActiveForm中有效的,你如果自己写ajax,那就用自定义的action中返回一个ajax结果就可以了,返回时指定是json数据,格式像这样:public function actionAjax(){ if (Yii::$app->request->isAjax) { ...... Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return ['error'=>$error]; } }
这个数据前端的success就能接收到了。
前端要使用msg.error
来获取错误信息。@朕的大清完了
你理解的没错,有空了多看看Yii2的官方文档,使用ActiveForm做验证非常方便的。关于Yii2的Ajax验证,可以看看我的这篇文章:
Yii2的表单验证之三:Ajax验证
其他 1 个回答
朕的大清完了
注册时间:2018-11-15
最后登录:2022-05-10
在线时长:22小时13分
最后登录:2022-05-10
在线时长:22小时13分
- 粉丝2
- 金钱479
- 威望20
- 积分899