我的用户表结构和laravel框架中的用户验证创建的表结构不一样,比如laravel中的默认是通email登录的,而我的用户表压根就没有email字段,这个还可以通过laravel的auth这个东西来实现用户验证码?
是不是如果表结构和laravel中的不一样就不能用它自带的auth来验证了呢?
淡淡烟草味2017-05-16 16:52:30
包括验证所使用的user表(Models/User.php)的table,
验证所读取的用户id字段(username/email)
读取的密码字段(password)
乃至于验证方法(bcrypt)都是可以自己定制的。
如果你是用5.1LTS的版本,可以先去看一下认证这一章节的文档
另外看一下你AuthController和UserModel里所默认使用的Trait
User(Model)里的Trait:Authenticatable
AuthController(Controller)里的Trait:AuthenticatesAndRegistersUsers(下的AuthenticatesUsers)
中间的实现的方法都是你可以在对应的Model和Controller里自己定制覆盖的
比如你所要求的用户名不一样,就可以通过覆盖loginUsername方法搞定:
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function loginUsername()
{
return property_exists($this, 'username') ? $this->username : 'email';
}
多看文档,多读源码。