Почему в Laravel не подключается header?

563
14 февраля 2017, 21:43

routes.php:

Route::get('/', 'MasterController@index');
Route::get('/', function () {
   return view('header');
});
Route::get('/', function () {
   return view('footer');
});

MasterController.php:

class MasterController extends Controller
{
public function index()
{
   return view('master');
}

header.blade.php:

@extends('master')
@section('header')
    <h1> HEADER</h1>
@endsection

master.blade.php:

<body>
    <div id="header">
        <h1> @yield('header')</h1>
    </div>
    <div id="footer">
        @yield('footer')
    </div>
</body>

footer.php:

  @extends('master')
  @section('footer')
     <h1>FOOTER</h1>
  @endsection

результат должно быть две надписи "HEADER" и "FOOTER"...так вот выводит только "FOOTER"...ПОЧЕМУ так?в роутах же они одинаково прописаны то...

Answer 1

Вы не совсем видимо верно поняли значение @yield и спутали его с @include

@yield - это динамическая вставка так сказать, будет заполнена только тогда, когда в вызываемом шаблоне описаны section('footer'),section('header')

@include - скажем так статическая вставка, при помощи @include вы можете разделить footer, header, menu, для удобства правки

Если вы хотите создать шаблон он будет выглядеть так:

layout.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    @include('header')
    <div id="content">
      @yield('content')
    </div>
    @include('footer')
</body>
</html>

header.blade.php

<header>
   <div class="banner"></div>
   <h1>@yield('title') </h1>
</header>

footer.blade.php

 <footer>
      Здесь футер
    </footer>

И например страница: page.blade.php

@extends('layout')
 @section('title') Заголовок который пойдет в H1 @endsection
 @section('content') 
   Основной текст страницы
 @endsection

B вот теперь в контроллере вызов шаблона page

public function index()
{
   return view('page');
}

даст вам footer, header и контент

READ ALSO
Как выполнить код из PHP файла внутри HTML

Как выполнить код из PHP файла внутри HTML

есть отдельный файл data_loaderphp и есть html'ка view

330
Лимит на выполнение скрипта

Лимит на выполнение скрипта

Доброго времени сутокВ общем возник такой вопрос

324
Как исключать &ldquo;ненужные&rdquo; файлы из пакетов, установленных через composer?

Как исключать “ненужные” файлы из пакетов, установленных через composer?

Так как composer не позволяет создать точный список файлов, которые нужно загрузить из того или иного пакета/репозитория, не могу определиться,...

294