Итак, я новичок в Laravel и пытаюсь делать вещи в стиле Laravel.
Я перестраиваю свой cms. Идея проста,
1) у вас есть страница с слагом
2) страница может иметь компоненты (виджеты)
Каждый компонент имел свой собственный файл контроллера и представление (шаблон Twig).
Концепция
1) Получить слизняк
2) Получить страницу из базы данных с слагом
3) Получить компоненты на странице
4) Рендеринг всех компонентов (каждый компонент имеет контроллер и представление)
5) Рендеринг страницы с компонентами. На странице есть свой контроллер
Итак, на данный момент мой «хак» работает.
Я могу получить слаг, получить страницу, получить компоненты, отобразить компоненты и отобразить страницу.
Но это не красиво
Моя отправная точка сейчас с маршрута
Route::get('{slug?}', function ($slug="/") {
// 1) get the slug
// 2) retrieve page from database
// 3) retrieve components on that page from database
// 4) render each component (calling their controller) and return the html
// 5) render the page (it has it's own controller , the component html is passed into the controller) and output the html
})
В этой функции много логики, и я хочу уменьшить это.
Я, конечно, могу создать модель для страницы и компонента для получения данных из базы данных.
Я не хочу создавать один контроллер страницы и затем в этом контроллере вызывать контроллеры компонентов.
Каким будет Laravel способ сделать это?