首页 文章

Laravel身份验证令人困惑

提问于
浏览
1

我是Laravel的初学者 .

我想用:

Auth::login(users::find(1))

Result: 类型错误:

传递给Illuminate \ Auth \ SessionGuard :: login()的参数1必须是Illuminate \ Contracts \ Auth \ Authenticatable的实例,App \ users的实例给出

changed the model to extend Authenticatable instead of Model . 我还将Auth语句更改为:

Auth::login(users::where('id', 1))

Result: 类型错误:

传递给Illuminate \ Auth \ SessionGuard :: login()的参数1必须实现接口Illuminate \ Contracts \ Auth \ Authenticatable,给出Illuminate \ Database \ Eloquent \ Builder的实例

我想知道你是否愿意帮我,'欣赏'

1 回答

  • 2

    您应该在用户Model类中实现Illuminate \ Contracts \ Auth \ Authenticatable以通过Auth :: login

    验证用户实例如果需要将现有用户实例登录到应用程序中,可以使用用户实例调用登录方法 . 给定对象必须是Illuminate \ Contracts \ Auth \ Authenticatable Contract 的实现 . 当然,Laravel附带的App \ User模型已经实现了这个接口:Auth :: login($ user);

    https://laravel.com/docs/5.1/authentication

    或者你可以简单地这样做:

    Auth::loginUsingId(1);
    

相关问题