Laravel AppServiceProvider Auth::guard('admin')->check() 不工作

Posted

技术标签:

【中文标题】Laravel AppServiceProvider Auth::guard(\'admin\')->check() 不工作【英文标题】:Laravel AppServiceProvider Auth::guard('admin')->check() not workingLaravel AppServiceProvider Auth::guard('admin')->check() 不工作 【发布时间】:2019-10-01 16:38:15 【问题描述】:

我想通过 AppServiceProvider 与所有视图共享数据。此外,我想先检查守卫类型,以便为每种用户类型提供一些特定的输出。

我试图通过Auth::guard('admin')->check() 检查 AppServiceProvider 中的守卫,但它返回 false。但是,相同的 if 语句在我的控制器中完美运行。 我还加入了Illuminate\Support\Facades\AuthIlluminate\Support\Facades\View

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider


    public function boot()
    
        if (Auth::guard('admin')->check()) 

            // Share data with views

        
    

if 语句返回 false,尽管我是以管理员身份登录的。

【问题讨论】:

【参考方案1】:

为此你需要视图作曲家。

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Auth;
use DB;
class AppServiceProvider extends ServiceProvider

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    
        view()->composer('*', function ($view) 
        
            if (Auth::guard('admin')->check()) 

               
        );  
    

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    
        //
    

如果你想在视图中传递数据。

        view()->composer('*', function ($view) 
        
            if (Auth::guard('admin')->check()) 
                 $admin = DB::table('admins')->first();  // for example
                 $view->with(compact('admin'));
               
        );

【讨论】:

以上是关于Laravel AppServiceProvider Auth::guard('admin')->check() 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:laravel 可翻译插件

win 怎么laravel命令

laravel 安装失败

laravel validator怎么验证整数

Laravel 图像规则验证不适用于 Laravel 8,但适用于 Laravel 7 |拉拉维尔 |图片 |验证

laravel和mongo怎么搭配使用