Динамический выбор шаблона

Blade Разработка Шаблоны

Автор: ACym.ru , 17 октября 2017 г.

Как выдать пользователю индивидуальный шаблон, и, если его нет, то шаблон по умолчанию

В 5.5 версии Laravel появилась новая возможность динамического использования шаблонов.

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

Делается это очень просто, перечислением шаблонов там, где вы в контроллере возвращаете вид:

 return view()->first(
     ['individualni-shablon', 'shablon-po-umolchaniyu'], $data
 );

Можно написать и в более развернутом виде через условие (с использованием if), либо, если хотите, просто посмотрите, что именно происходит:

 if (view()->exists('individualni-shablon')) {
     return view('individualni-shablon', $data);
 }
 return view('shablon-po-umolchaniyu', $data);

Т.е. видно, что сначала проверяется, существует ли индивидуальный шаблон, и если такового не найдено, выводится шаблон по умолчанию.

Прелесть такой системы - в ее гибкости. Во-первых, можно использовать не два шаблона, а массивом выдать столько, сколько нужно. А во-вторых, использовать параметры.

Ну, например, для блога:

 return view()->first([
     "blog/{$id->slug}",
     "blog/tag-{$id->tag->slug}",
     "blog/shablon-po-umolchaniyu"
 ], $data);

Очень интересная фишка.

Также, можно использовать фасадный вариант:

 \View::first($templates, $data)

Удачи на просторах Интернета, до новых встреч на сайте заметок о Ларавель, LaraNotes.ru