Laravel @guest无法识别自卫队之一

时间:2019-02-27 09:25:23

标签: laravel

Laravel(5.8)@来宾无法识别自定义守卫之一。我有2个自定义守卫:

'guards' => [
        'suppliers' => [
            'driver'  => 'session',
            'provider' => 'suppliers',
        ],

        'admins' => [
            'driver'  => 'session',
            'provider' => 'admins',
        ],
],

'providers' => [
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

        'suppliers' => [
            'driver' => 'eloquent',
            'model' => App\Supplier::class,
        ],
],

登录路线为:

// Admin Auth routes
Route::get('/admin/login', 'Auth\LoginController@showLoginForm')->name('admin.login');
Route::post('/admin/login', 'Auth\LoginController@login')->name('admin.login.post');
Route::post('/admin/logout', 'Auth\LoginController@logout')->name('admin.logout');

// Suppliers Auth routes
Route::get('/login', 'AuthSuppliers\LoginController@showLoginForm')->name('login');
Route::post('/login', 'AuthSuppliers\LoginController@login')->name('login.post');
Route::post('/logout', 'AuthSuppliers\LoginController@logout')->name('logout');

一切都可以在suppliers上正常运行,但是admins不能被标识为使用Blade @guest指令登录,但是Auth::guard('admins')->check()返回true。

任务更像是:如何使用带有多个后卫的剑刃。例如,如果我不知道哪个防护人员已准确登录,该如何打印用户名?

1 个答案:

答案 0 :(得分:1)

来自laravel文档:

  

如果需要,您可以指定应检查的身份验证保护   使用@auth和@guest指令时:

@auth('admin')
     // The user is authenticated...
@endauth

@guest('admin')
    // The user is not authenticated...
@endguest

因此,您可以给@auth@guest一个参数,该参数是用于检查的身份验证保护措施