Я хотел бы поделиться данными со всеми представлениями через AppServiceProvider. Кроме того, я хотел бы сначала проверить тип защиты, чтобы дать конкретный вывод для каждого типа пользователя.
Я пытался проверить защиту в AppServiceProvider через Auth::guard('admin')->check(), но она возвращает 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, хотя я вошел в систему как администратор.






для этого вам нужен просмотр композитора.
<?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'));
}
});