Переменные общего ресурса Laravel между несколькими контроллерами - PullRequest
0 голосов
/ 15 мая 2019

Я использую AppServiceProvider для обмена определенными данными администратора со всеми связанными представлениями.

Теперь я хотел бы поделиться данными администратора также со всеми связанными с администраторами контроллерами, чтобы заменить Auth::guard('admin')->user()->firstname by $admin->firstname.

$id = Auth::guard('admin')->user()->id;
$admin = Admin::findOrFail($id)->first();

Как я могу поделиться этим фрагментом кода со всеми связанными контроллерами, чтобы получить, например, admin firstname через $admin->firstname?

1 Ответ

0 голосов
/ 15 мая 2019

Я бы пошел о создании глобального промежуточного программного обеспечения

php artisan make:middleware AdminCarrier

В промежуточном программном обеспечении вы можете добавить переменную $admin в сумку $request и получить к ней доступ через контроллер.

class AdminCarrier
{
    public function handle($request, Closure $next)
    {
        $id = Auth::guard('admin')->user()->id;
        $admin = Admin::findOrFail($id)->first();

        $request->request->add(['admin' => $admin]);

        return $next($request);
    }
}

В контроллере вы можете получить к нему доступ через:

$request->admin

Убедитесь, что промежуточное ПО является глобальным, зарегистрировав его на Http/Kernel.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...