В нашем представлении есть много общих частей, таких как меню навигации, информация внизу, информация о пользователе и т.д. Обычно мы используем отдельные компоненты представления для обработки этих блоков элементов, но как передать переменные данных, требуемые этими компонентами, с внутренней стороны, является проблемой, поскольку эти компоненты используются совместно на нескольких страницах, и с точки зрения внутренней части задействовано несколько методов маршрутизации/контроллера, Нужно ли нам каждый раз извлекать и передавать эти данные повторно? Есть ли способ поддерживать одно определение и многократное повторное использование?
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');
});