【问题标题】: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\Auth 和Illuminate\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,尽管我是以管理员身份登录的。

【问题讨论】:

    标签: laravel


    【解决方案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'));
                }   
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 2020-09-05
      • 2015-09-06
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      相关资源
      最近更新 更多