- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定这是否是导致我的问题的真正原因,但也许有人会知道。当我使用 Laravel Socialite 并执行以下操作时:
$social_user = Socialite::driver($provider)->user();
然后在我的代码中的其他地方执行此操作:
if ($authUser = User::where('provider_id', $social_user->id))
return $authUser;
出于某种疯狂的原因,我收到如下错误:
传递给 Illuminate\Auth\SessionGuard::login() 的参数 1 必须实现接口(interface) Illuminate\Contracts\Auth\Authenticatable,给出 Illuminate\Database\Eloquent\Builder 的实例
但是,如果我这样做,我不会收到错误:
if($authUser = User::where('email', $social_user->email)->first())
return $authUser;
我像这样登录该用户:
Auth::login($authUser, true);
有人知道为什么吗?我使用的是 Laravel 5.2
最佳答案
错误消息实际上是 self 解释的。当您执行 User::where('provider_id', $social_user->id)
时,您最终会得到实现 Illuminate\Database\Eloquent\Builder 的 builder 对象
。您可以对其调用 ->get()
来获取结果集合(实现 Illuminate\Contracts\Auth\Authenticatable
的对象集合> 在你的情况下,这样你就可以迭代它们),或者像你一样,你可以使用 ->first()
获得第一个匹配(一个实现 Illuminate\Contracts\Auth\Authenticatable
)。您可以在 Eloquent documentation 中阅读更多内容.
要点是,直到您调用 ->get()
或 ->first()
您正在使用 构建器对象。实际上还有 ->find()
方法,用于通过 pk
检索记录,您不能使用它来通过约束(where)搜索记录,但它还返回模型对象。
关于Laravel 社交名流 $user->getId()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37247380/
尝试让社交名流使用我的应用程序。 Facebook 返回参数 app_id is required 错误。 路线: Route::get('/login/facebook', '\CommendMe\
我是一名优秀的程序员,十分优秀!