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\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,尽管我是以管理员身份登录的。
【问题讨论】:
【参考方案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() 不工作的主要内容,如果未能解决你的问题,请参考以下文章