всем привет. начал изучение Laravel, кстати устроился junior программистом PHP, буду писать проекты на Laravel. так вот есть у меня таблица pages и я хочу вывести список pages в верхней части сайта. она подключена к template с помощью include('layouts/pages'). как мне в pages.blade.php вывести все страницы. конечно у меня есть ControllerPage и ModelPage. создать объект ModelPage в pages.blade.php? и еще, это же не правильно каждый раз обращаться к БД и запрашивать список страниц. этот список будет меняться не часто. можно, как-нибудь, сгенерировать файл, который будет содержать список страниц и этот файл будет генерироваться только в случае изменения таблицы pages. так скажем поддержка версий файла. это как создание файлов css и js через laravel-mix по-моему. там есть такая штука как webpack.mix.js и в нем можно прописать поддержку версий: mix.js('public/css/my.css').sass('public/js/my.js').VERSION(). или все это кэшировать? хотя кэширование пока не очень понимаю.
Ты наверное хотел сказать @include('layout.pages') В путях blade разделитель точка, а не слеш. Кешировать конечно можно, только ты этим сейчас не заморачивайся. Говорят, преждевременная оптимизация это плохо. Если тебе надо получить список страниц в layout.pages, ты можешь сделать одно из трёх: - Передать этот список из контроллера при вызове основного шаблона, а затем прокинуть его в под-шаблон как параметр @include('layout.pages', ['pages' => $pages]) - В сервис провайдере зарегистрировать вызов view composer для данного шаблона. Параметр не придется передавать в контроллере, он появится "магически". - Сделать инъекцию сервиса в под-шаблоне и получать данные из него.
Что это? Тебе три различных метода предложили. ты хоть доку-то прочитал? Задаёшь вопросы, которые там разжёваны досконально.