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

我正在创建一个多重身份验证系统,我试图显示一个名为“场地”的登录场地模型中包含的数据,但我似乎无法访问它,它一直在标题中抛出错误?网上没有太多有用的信息,我想知道是否有人可以伸出援手?


场地.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 真的有问题:(


眼眸繁星
浏览 316回答 1
1回答

侃侃无极

你不能那样做。要从您正在使用的守卫那里获取模型,您必须指定您想要工作的守卫,然后通过user()方法检索数据Auth::guard('venue')->user()您可能会感到失望,因为大多数时候,当您想从只有一个守卫的系统中连接的用户那里获取信息时,您只使用Auth::user().事实上,这是因为 Laravel 使用的默认保护是web,这是大多数人用于简单登录系统的保护。所以你不需要指定guard(),只是user()因此你在使用时犯的错误venue()直接认为它是通过更改配置添加到 Auth 对象的方法。但是当你使用特定的守卫时,你需要通过 Auth 对象指定你想要处理的守卫(在这种情况下venue),然后才能调用user()它的方法来获取用户的信息。
打开App,查看更多内容
随时随地看视频慕课网APP