В настоящее время мы используем инфраструктуру Laravel в нескольких проектах, но одна проблема, с которой мы продолжаем сталкиваться, и которая мне не нравится, это следующая проблема:
Допустим, у вас есть домашняя страница и страница контента.
HomepageController имеет весь php-код, специфичный для домашней страницы. ContentpageController имеет весь php-код, специфичный для контента.
у нас есть app.blade.php, который делает
@yield('page')
HomepageController вызывает представление homepage.blade.php, содержащее
@extends('app')
@section('page')
Some HTML part
@include('parts.top_5')
@endsection
ContentController вызывает представление content.blade.php, содержащее
@extends('app')
@section('page')
Some different HTML part
@include('parts.top_5')
@endsection
Здесь вы можете видеть, что обе страницы содержат parts.top_5, для вывода top5 нужны определенные переменные. Теперь проблема в том, что в настоящее время мы копируем код для переменных top5 в обоих контроллерах или в сгруппированном промежуточном программном обеспечении, но есть ли лучшее решение для создания некоторых переменных, специфичных для блейда, когда часть включена? Что-то вроде запуска функции контроллера при загрузке блейд-шаблона?
Я искал в Интернете, но не могу найти никого с таким же вопросом. Надеюсь, кто-то может помочь мне в этом умопомрачительном вопросе!