为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 错误:方法 Illuminate\Auth\SessionGuard::venue

Laravel 错误:方法 Illuminate\Auth\SessionGuard::venue

PHP
眼眸繁星 2021-11-26 19:23:26
我正在创建一个多重身份验证系统,我试图显示一个名为“场地”的登录场地模型中包含的数据,但我似乎无法访问它,它一直在标题中抛出错误?网上没有太多有用的信息,我想知道是否有人可以伸出援手?场地.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登录控制器: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'));    }守卫:'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,        ],    ],如有任何帮助,我将不胜感激!Laravel 真的有问题:(
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

你不能那样做。

要从您正在使用的守卫那里获取模型,您必须指定您想要工作的守卫,然后通过user()方法检索数据

Auth::guard('venue')->user()

您可能会感到失望,因为大多数时候,当您想从只有一个守卫的系统中连接的用户那里获取信息时,您只使用Auth::user().

事实上,这是因为 Laravel 使用的默认保护是web,这是大多数人用于简单登录系统的保护。所以你不需要指定guard(),只是user()因此你在使用时犯的错误venue()直接认为它是通过更改配置添加到 Auth 对象的方法。但是当你使用特定的守卫时,你需要通过 Auth 对象指定你想要处理的守卫(在这种情况下venue),然后才能调用user()它的方法来获取用户的信息。


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 278 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信