Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.02.2017 21:14:09

Шаблоны и Route

Работает.

Route::get('users', function () {
    return View::make('users');
});
layout.blade.php

<html>
<body>
<h1>Laravel Quickstart</h1>

@yield('content')
</body>
</html>

users.blade.php
@extends('layout')

@section('content')
    Users!
@stop

Не работает.

Route::group(['middleware' => 'web'], function () {
      
    Route::match(['get', 'post'], '/', ['uses' => 'IndexController@execute', 'as' => 'home']);
    Route::get('page/{alias}', ['uses' => 'PageController@execute', 'as' => 'page']);

    Route::auth();
    
});
site.blade.php
<header id="header_wrapper">
    @yield('header')
</header>


header.blade.php
@extends('site')

@section('header')

<div class="container">
  .....
</div>
@stop

class IndexController extends Controller
{

    public function execute(Request $request) {

        return view('site');
    }

}

Только начал изучать Laravel установил у себя версию 5.3.

Подскажите почему не отображается у меня header через шаблонизатор?

Изменено Batis (06.02.2017 21:16:51)

Не в сети

#2 06.02.2017 22:53:04

skiphog
Откуда: Киров, Россия
Сообщений: 26

Re: Шаблоны и Route

Роуты тут не при чем.
Пересмотрите систему наследования.

return view('site');

Здесь вы показываете общий шаблон site, но site понятия ничего не имеет о header

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

return view('header');

Так будет работать
--
Тем не менее, в конечном итоге, вы так делать не будете, т.к. header - это всего лишь кусок, который вы будете показывать в наследнике.
Еще раз почитайте про Blade Templates

Не в сети

#3 07.02.2017 05:38:41

Re: Шаблоны и Route

Batis, добавлю ещё что то что ты пытаешься сделать, делается с помощью @include. а @extends предназначен для подключения общего лейаута внутри шаблонов отдельных страниц

Не в сети

Подвал раздела