在Yii/frontend/web下的注册页面可以同时该账号已存在
model里面代码是:
['username', 'trim'],
['username', 'required'],
['username', 'unique', 'targetClass' => '\common\models\User', 'message' => '这个用户名已经被采取。'],
['username', 'string', 'min' => 6, 'max' => 16],
这个原理是在\common\models\User
里面,但我照着他的写没反应,请问这个原理的意思是怎样实现的?
当然,你发现了当你输入用户名密码并且点击提交按钮获取用户名存在的提示时,页面几乎原封不动。这很有趣。但这和验证用户名唯一是没有关系的,这其中大多数是ActiveForm的功劳。
至于你照着写却没反应,这涉及到了非常之多。不好猜测。
不过建议你参考下这篇 http://www.yiichina.com/tutorial/965 去花费 30 秒完成YII2的登录注册然后观察其注册完整流程,这会很有帮助的。
具体去看下验证规则的代码呀。
在yii目录下是有的,在UniqueValidator.php文件中
有一种是当你输入完名字之后,直接判断是否存在。(不是说点了注册才开始判断)
那么这种做法是,开启ActiveForm
的enableAjaxValidation
然后在controller
里添加一个ajax
验证字段