@Zabolots

При использовании laravel как правильно для шаблона страниц готовить элементы на основе данных из БД?

Делаю первый проект с использованием Laravel (то есть изучаю его в процессе). Возник такой вопрос: есть навигационное меню (navbar), которое отображается на всех страницах сайта. Это меню есть результат выборки из БД, так как в БД хранятся страницы и разделы сайта. Выводится оно в главной обвертке (mainwrap.blade.php), общей для всех страниц. Вопрос - в эту обвертку как его передать правильно и где сгенерировать?
В начале сделал в контроллере, из которого потом вызывается view, передав во view переменную, содержащую результат выборки (страницы, разделы). Но если контроллеров несколько, думаю, не правильно в каждом делать так? А как правильно?
  • Вопрос задан
  • 394 просмотра
Решения вопроса 1
amelihovv
@amelihovv
Фулстек веб разработчик
Используйте view composer https://laravel.com/docs/5.4/views#view-composers

В AppServiceProvider в методе boot пропишите
View::composer('*', function ($view) {
    $view->with('menu', /* Ваш запрос для выборки меню */);
});


Теперь вам не нужно передавать $menu в каждом контролере
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы