Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Работает.
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)
Не в сети
Роуты тут не при чем.
Пересмотрите систему наследования.
return view('site');
Здесь вы показываете общий шаблон site, но site понятия ничего не имеет о header
Для того, что бы header показался, вам нужно показать наследника общего шаблона, а у вас это header
return view('header');
Так будет работать
--
Тем не менее, в конечном итоге, вы так делать не будете, т.к. header - это всего лишь кусок, который вы будете показывать в наследнике.
Еще раз почитайте про Blade Templates
Не в сети
Batis, добавлю ещё что то что ты пытаешься сделать, делается с помощью @include. а @extends предназначен для подключения общего лейаута внутри шаблонов отдельных страниц
Не в сети
Страницы 1