Можно ли включить блейд Laravel 4.2 вместе с собственным контроллером? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть файл боковой панели, который присутствует на каждой странице сайта, над которым я работаю.

layout.blade:

<div class="after-login buying-process-wrapper">
  <!--page content-->
  {{ $content }}
  <!-- end of page content-->

  <!-- Sidebar -->
  @include('layout.sidebar')
  <!-- End of Sidebar -->
</div>

Мой контроллерустанавливает $ layout и отображает указанный выше blade-файл, но layout.sidebar является включаемым файлом, который требует PHP для заполнения его содержимого.

Можно ли установить контроллер / маршрут только для этой боковой панели (и как мне это сделать??) или я вынужден дублировать одни и те же вызовы функции, которая обрабатывает содержимое боковой панели в каждом контроллере?

Я пытаюсь найти лучшее решение, чем входить в каждый контроллер иВызов -> sidebar () каждый раз при загрузке каждой страницы.

Спасибо

1 Ответ

0 голосов
/ 10 октября 2018

Почему вы все еще используете Laravel 4.2?Сейчас 5.7, и я настоятельно рекомендую вам обновить его до последней версии.

Ответ на ваш вопрос:

Нет, вам не нужно вызывать функции, которые обрабатывают вашуСодержание боковой панели в каждом контроллере.Вы можете поделиться своими общими данными для всех или некоторых ваших просмотров, используя View Composer.От Laravel 4.2 Документация :

Композиторы представления - это обратные вызовы или методы класса, которые вызываются при визуализации представления.Если у вас есть данные, которые вы хотите привязать к определенному представлению каждый раз, когда оно отображается во всем приложении, составитель представлений может организовать этот код в одном месте.Поэтому составители представлений могут функционировать как «модели представлений» или «докладчики».

Если вы используете более новые версии Laravel ,, не забудьте переключиться на нужную документацию из правого верхнего угла.

Кроме того, при использовании директивы Blade @include вы можете при желании передавать переменные во «включенные» компоненты:

@include('layout.sidebar', ['my_var' => 'value goes here'])

И вы можете использовать {{ $my_var }} в своем компоненте так же, каквы обычно делаете это в своих шаблонах лезвий.

...