{{Laracast Laravel 5 Fundamentals, 5, Passing Data to Views, 09.01.2015, 18.06.2016, https://laracasts.com/series/laravel-5-fundamentals/episodes/5}} %%(hvlraw) %% (0:00) Теперь, когда вы узнали, как передавать переменные в вид, давайте пойдём дальше и поговорим чуть побольше о Blade. Если я верну боковую панель, надеюсь вы помните как в последнем уроке я говорил, что если постоянно копировать большие куски HTML в каждый вид, то всё очень быстро сломается. Вместо этого мы должны выделять такие куски в отдельные шаблоны. Итак, вот, что мы можем сделать. В моей директории %%(t)/views%%, я создам новый мастер-файл или файл-шаблон, как вам удобно его называть. (0:30) Давайте просто остановимся на имени %%(t)app.blade.php%%. ОК, так вот, здесь у нас будет весь наш обёртывающий HTML-код, так сказать. И потом я буду здесь использовать Blade — выведем раздел %%(t)content%%: %% @yield('content') %% Обратите внимание насколько хорошо это читается. Вот наш HTML-код, и между этими двумя тегами я и хочу вывести ("yield") моё содержимое. Или, выражаясь более точно, возможно у вас есть какой-то %%(t)div%%-контейнер в формате Bootstrap. (1:00) ОК, теперь мы объявим все эти вещи один раз, и затем все ваши виды просто создадут небольшие разделы, которые будут автоматически вставлены вот здесь. Вот как. В нашем файле About, я могу сейчас удалить весь этот мусор, и вместо этого, я собираюсь расширить мою мастер-страницу %%(t)app%%: %% @extends('app') %% Хорошо. Но теперь, как мне указать где находится мой раздел? Хорошо мы используем вот этот ключ: %%(t)@section()%% и затем мы станем ссылаться на имя (мы назвали его %%(t)content%%): %% @section('content') %% (1:30) Итак, давайте посмотрим, сработает ли это. И знаете что, я избавлюсь от этой переменной, что мы удалили. Так что если мы переключимся обратно в Chrome, обновим, и готово. Но теперь мы не повторяем весь этот HTML. Так почему бы нам не добавить ту страницу %%(t)contact%% о которой мы говорили ранее? ОК, вернёмся обратно в наш файл маршрутов. Когда пользователь делает GET-запрос на страницу %%(t)contact%%, я хочу загрузить %%PagesController@contact%%: %% Route::get('contact', 'PagesController@contact'); %% (2:00) Не забывайте, вы всегда можете открывать эти файлы вручную, но вместо этого, очень постарайтесь использовать ваш редактор кода или IDE, чтобы очень быстро переключаться на эти имена. В этом случае я иду к %%PagesController%%, так что мне не нужно переходить сюда (%%(t)Http/Controllers%%) и открывать все эти папки, я могу просто набрать %%PagesController%% и перейти, и почти что во всех современных IDE есть для этого специальные сочетания клавиш. Так что просто найдите их в своём редакторе. Как бы то ни было, мы собираемся быстро добавить контактную страницу: %% return view ('pages.contact'); %% (2:30) И теперь, если мы переключимся обратно, мы создали этот вид некоторое время назад, так что мы можем просто обновить его: %% @extends('app') %% И теперь создадим новый раздел (%%(t)section%%) для области содержимого: %% @section('content')