ake*_*dis 0 php authentication laravel
我正在创建一个多身份验证系统,我试图显示一个名为“场地”的登录场地模型中包含的数据,但我似乎无法访问它,它一直在标题中抛出错误?网上没有多少有用的信息,我想知道是否有人可以伸出援手?
场地.blade.php:
@extends('layouts.auth')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Dashboard</div>
{{ dd(Auth::venue()) }}
<div class="card-body">
</div>
</div>
</div>
</div>
</div>
@endsection
Run Code Online (Sandbox Code Playgroud)
登录控制器:
public function venueLogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6'
]);
if (Auth::guard('venue')->attempt(['email' => $request->email, 'password' => $request->password], $request->get('remember'))) {
return redirect()->intended('/venue');
}
return back()->withInput($request->only('email', 'remember'));
}
Run Code Online (Sandbox Code Playgroud)
守卫:
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'customer' => [
'driver' => 'session',
'provider' => 'customers',
],
'customer-api' => [
'driver' => 'token',
'provider' => 'customers',
'hash' => false,
],
'venue' => [
'driver' => 'session',
'provider' => 'venues',
],
'venue-api' => [
'driver' => 'token',
'provider' => 'venues',
'hash' => false,
],
],
Run Code Online (Sandbox Code Playgroud)
如有任何帮助,我将不胜感激!Laravel 真的有问题:(
你不能那样做。
要从您正在使用的守卫获取模型,您必须指定您想要工作的守卫,然后通过user()
方法检索数据
Auth::guard('venue')->user()
您可能会感到失望,因为大多数情况下,当您想从只有一个守卫的系统中连接的用户那里获取信息时,您只使用 Auth::user()
.
事实上,这是因为 Laravel 使用的默认保护是web
,这是大多数人用于简单登录系统的保护。因此,您不需要指定guard()
,只是user()
因此您在使用时所犯的错误venue()
直接认为它是通过更改配置添加到 Auth 对象的方法。但是当你使用特定的守卫时,你需要通过 Auth 对象指定你想要处理的守卫(在这种情况下venue
),然后才能调用user()
它的方法来获取用户的信息。
归档时间: |
|
查看次数: |
8593 次 |
最近记录: |