Laravel的auth功能非常好用。只需要按照模板写,几乎不写代码就可以完成注册,登录,忘记密码这一整套流程。但是,仅仅照搬,还是有些不足的。下边列出个人注意的一些知识点,以备以后会用到。
注册
前端表单页面 -> 路由 -> 控制器(RegisterController) + RegistersUsers。
调用的是控制器的 register
方法,但该方法来自 RegistersUsers
。查看 RegistersUsers,发现其修饰符为 trait。
- 如果想对
register
进行重写。 可以在RegistersUsers
建立同样的 register 方法,代码也照搬过来, 然后加入自己所需的代码(比如特殊验证)。 -
结合 bootstrap 框架,怎么使用其表单验证功能呢。请看 RegisterController 的 validator 方法。
在 make方法中,第一个参数是表单提交的data数组,第二个参数是验证规则(是否必填,数据类型,长度,是否可以重复,还可以使用正则),第三个参数是验证不通过时,提示给前端的提示语,可以对同一字段的不同规则进行各种提示。这个验证规则,生成auth的时候,就有样例了。
- 默认样例,注册添加到数据库的仅仅只有 'email, password' 两个字段。可是,有时候注册,这两个字段完全不够,需要增加字段。这个又在哪处理呢。请看 modle 中的 User,默认在app下。当然,你可以移到自建的Models下。对应的引用位置都需要改变。
登录
前端表单页面 -> 路由 -> 控制器(LoginController) + AuthenticatesUsers。
在这里需要注意一下登录时所对应的账号字段,默认是email,这个是在 AuthenticatesUsers 的 username方法中定义的。这个时候可以在 LoginController 中重新定义该方法。比如:
public function username()
{
return 'account';
}
AuthenticatesUsers命名空间是 Illuminate\Foundation\Auth
。
就记下以上几点。核心逻辑需要去使用和钻研中继续。