#4 Laravel 5: Первое представление

Основы 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>

Добавить отзыв (пожелание, комментарий)