Хочу сделать правильно. Задумано, что можно создавать страницы на сайте через панель администратора. Создана таблицы pages
в базе данных. Модель Page
и контроллер-ресурс PageController
. Также настроен роут.
В контроллере PageController
для отображения страницы в методе show
возвращаю вид и данные для отображения. Тут всё понятно. Запроси страницу - получил.
Когда буду писать админку, то задействую остальные методы контроллера PageController
: store
, destroy
и другие, включая index
- для отображения списка всех страниц. Таким образом одна таблица в базе данных - одна модель, один роут-ресурс, один контроллер.
Однако на сайте есть меню, вынесенное как отдельное представление. Возникает вопрос - как динамически генерировать меню. Метод index
контроллера PageController
занят (для админки; смотри выше). К тому же моё меню - это отдельное представление, ребёнок родителя. Туда данные так просто не передашь - придётся передавать в каждый вид-родитель, а это куча ненужного кода, ведь меню выводится на каждой странице сайта.
Вот собственно и вопрос - как выкрутиться? Как получить данные для отображения этого меню? Так сказать True Laravel Way.
Для этих целей следует использовать View Composers. Можно назначать данные определённым видам и т.п. Очень удобно.
Недавно делал то же самое.
Я делал так:
Выстраиваем в контроллере массив следующим образом: в начало кладем самых старших, потом их детей(не внуков) и так далее.
Дальше за один проход просто вставляем элементы друг в друга. Конструкция массива позволяет. Вставлять можно в domdocumet c php или прямо в страничку c ajax.
Таким образом мы не будем делать много действий на фронт энде и прописывать меню.
А таблицу со страницами через внешний ключ подключим к элементу меню. Т.е. будет 2 контроллера NavigationElementsController и PagesController.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть документ somethingblade
Что я делаю: Верстаю сайт на PHP, хочу в качестве БД использовать Oracle (не спрашивайте почему
Имеются плагины https://octobercmscom/plugin/fireunion-blogfront и https://octobercms
у меня есть форма для заполнения данных пользователем на которой выводится статья и информация о нейВыглядит она так: