登录

如果自己的用户表结构和laravel自带的auth的用户表结构不一样,怎么进行用户验证?

我的用户表结构和laravel框架中的用户验证创建的表结构不一样,比如laravel中的默认是通email登录的,而我的用户表压根就没有email字段,这个还可以通过laravel的auth这个东西来实现用户验证码?

是不是如果表结构和laravel中的不一样就不能用它自带的auth来验证了呢?

# PHP
PHP中文网PHP中文网2227 天前427 次浏览

全部回复(1) 我要回复

  • 淡淡烟草味

    淡淡烟草味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';
    }

    多看文档,多读源码。

    回复
    0
  • 取消回复发送