Стратегия уменьшения количества вставляемого кода снова и снова - PullRequest
0 голосов
/ 23 октября 2018

В laravel у меня есть боковая панель, которая отображает количество ежедневных записей пользователей

В каждой функции контроллера мне нужно иметь следующее, поскольку боковая панель всегда отображается.

$data['entry_count_today'] = Data_group1::TodayCount('group1', Auth::user()->id)->count();

Должен быть лучший способ сделать это доступным на контроллере, чем просто вставить его в каждую функцию.

Предложения?

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете создать собственное промежуточное ПО и обмениваться данными с любым видом.

php artisan make:middleware Sidebar

В сгенерированной функции дескриптора промежуточного ПО добавьте следующее:

$data['entry_count_today'] = Data_group1::TodayCount('group1', Auth::user()->id)->count();

\View::share('data', $data);

return $next($request);

Добавьте промежуточное ПО в $Массив routeMiddleware в Kernel.php:

protected $routeMiddleware = [
    ...
    'sidebar' => \App\Http\Middleware\Sidebar::class,
    ...
];

И, наконец, в папке ваших маршрутов web.php:

Route::group(['middleware' => ['sidebar']], function(){
//add routes you want the data to be passed on
});

И в представлении вы можете получить доступ к данным с помощью: $data['entry_count_today']

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