В нашем представлении есть много общих частей, таких как меню навигации, информация внизу, информация о пользователе и т.д. Обычно мы используем отдельные компоненты представления для обработки этих блоков элементов, но как передать переменные данных, требуемые этими компонентами, с внутренней стороны, является проблемой, поскольку эти компоненты используются совместно на нескольких страницах, и с точки зрения внутренней части задействовано несколько методов маршрутизации/контроллера, Нужно ли нам каждый раз извлекать и передавать эти данные повторно? Есть ли способ поддерживать одно определение и многократное повторное использование?
1. Используйте метод laravel view() – > поделиться
С помощью метода общего доступа, предоставляемого объектом view, мы можем определить переменные общего доступа в методе загрузки поставщика услуг, такого как appserviceprovider:
public function boot() { Schema::defaultStringLength(191); $weekeitems = ['Day', 'one', 'two', 'three', 'four', 'five', 'six']; $today = sprintf ('week% s', $weekeitems [date ("W", time())]); view()->share('today', $today); }
Если компонент представления не указан, смысл приведенного выше кода состоит в том, чтобы поделиться им во всех представлениях сегодня
Переменная, что, конечно, немного расточительно. Это не рекомендуется. Обычно мы используем view composer для указания области представления для общей “переменной” по умолчанию в виде закрытия.
2. Используйте метод laravel view() – > composer
view()->composer(['layouts.app'], function ($view) { $view - > with ('publicmsg ','specify shared view component information'); });