Основы Laravel 5
Эффективно используй то что у тебя есть.
Начинаем первые шаги в освоении представлений (View) в Laravel 5.
У нас есть файл index.blade.php который мы создали на прошлом уроке. Данный файл представления отвечает за html код главной страницы сайта. Сейчас данный файл содержит лишь одну тестовую строку и соответственно только её мы и наблюдаем на главной странице сайта laravel.local
Из чего состоит типовая страница любого сайта? У нас есть определенный каркас - тот код который повторяется на всех страницах. Зачастую это главное меню и футер. И уникальный контент который генерируется тем или иным экшеном.
Надо сделать так чтобы не дублировать этот код от шаблона к шаблону. Он должен находиться в одном месте и применяться в различных целевых шаблонах. Иными словами у нас должен быть главный каркас, основной layout.
И уникальный контент который выдает тот или иной экшен должен встраиваться в эту глобальную структуру.
На том примере который идет "из коробки" с Laravel мы уже имеем определенную структуру, так сказать мастер шаблон.
Наша цель - обучиться Laravel за максимально короткий срок. По этому нам не надо придумывать всяческие велосипеды - нам нужно эффективно использовать то что у нас уже есть.
У нас есть определенная структура. Надо понять как она работает и применить это уже в нашем обучении. Посмотреть, понять, применить. Давайте посмотрим как у нас формируется страница http://laravel.local/auth/login
В папке virews/ у нас есть папка auth/ в которой находятся все шаблоны контроллера AuthController.
Рассмотрим шаблон страницы /login/
@extends('app') @section('content') <div class="container-fluid"> ... div> @endsection
Первой строкой мы подключаем наш главный layout app.blade.php. Так как никакого пути к шаблону в коде нет, то логично предположить что искомый файл находится в корне veiws.
Откроем файл veiws/app.blade.php и разберем его содержимое
<html lang="en"> <head> .... head> <body> ..... @yield('content') ..... body> html>
Здесь мы наблюдаем ту HTML-структуру которая у нас будет повторяться из страницы к странице.
И с помощью команды @yield('content') мы выводим уникальный html-код который формирует тот или иной экшен.
В шаблоне index.blade.php у нас есть формирование сексии "content" - @section(<название секции>) ...@endsection (рекомендую секцию закрывать с помощью @stop так как @endsection оставлено для совместимости со старыми версиями). И как раз код сформированный здесь выдаст нам @yield(<название секции>).
Теперь по образу и подобию сделаем то же самое для нашей главной страницы сайта - переработает файл post/index.blаde.php
@extends('app') @section('content') index.blade.php @stop
Так же немного приукрасим наш глобальный layout app.blade.php обернув @yield('content') в bootstrap теги -
<div class="container"> <div class="row"> <div class="col-md-10 col-md-offset-1"> <div class="panel panel-default"> <div class="panel-heading">div> <div class="panel-body"> @yield('content') div> div> div> div> div>