@extends('layout') laravel. Blade Template System выглядит как Не работает

Я попытался использовать систему шаблонов laravel: blade но похоже, что она не работает при использовании приведенного ниже кода в файле users.blade.php:

@extends('layout')

@section('content')
Users! @stop

и браузер,

 @extends('layout')

Ответ 1

Это должно работать, если у вас есть файл шаблона в /app/views/layout.blade.php, содержащий

<p>Some content here</p>

@yield('content')

<p>Some additional content here</p>

Затем в вашем /app/views/user.blade.php содержимое

@extends('layout')

@section('content')

<p>This is the user content</p>

@stop

Если вы вызываете return View::make('user'), вы должны иметь скомпилированный контент

<p>Some content here</p>

<p>This is the user content</p>

<p>Some additional content here</p>

Я надеюсь, что это поможет вам прояснить ситуацию. Если нет, можете ли вы указать расположение файлов шаблонов и соответствующий контент?

Ответ 2

Просто удалите лишнее пространство или что-то еще до @extends ('yourlayoutfile').

Это должно быть первое, что нужно сделать в файле.

Я столкнулся с той же проблемой и попробовал много вещей. Вдруг я обнаружил одно место при запуске файла до @extends.

Удалено пространство и работает нормально.

Спасибо.

Формат:

@extends('layouts.default')
 @section('content') 
.....
 @stop

--- Edit ----

Если это не помогло, попробуйте:

Скопируйте все содержимое в файл и затем удалите файл.

Создайте новый файл и сохраните его как filename.blade.php

Только после сохранения файла вставьте содержимое на страницу. Сохраните изменения и запустите их.

Это работает.

Спасибо.

Ответ 3

Где находится ваш макет?

Если его в app/views/layouts, то это должно быть

@extends('layouts.index')

(при условии, что имя index.blade.php)

ex: @extends('layouts.foo') равно файлу в app/views/layouts/, называемому либо foo.blade.php, либо foo.php. (в зависимости от того, используете ли вы лезвие)

Ответ 4

У меня та же проблема. Что сделано: 1. в routes.php

Route::get('about', '[email protected]');

что AboutController - это файл контроллера AboutController.php в приложении/контроллерах index - это функция внутри этого контроллера.

2.Создайте AboutController.php в приложении/контроллерах

class class AboutController extends BaseController {
    protected $layout = 'layouts.default';
    $this->layout->content = View::make('pages.about');
}

Вы можете посмотреть эту ссылку: Определение макета на контроллере

Ответ 5

По умолчанию Laravel имеет папку layouts внутри папки views, то есть app/views/layouts, и в этой папке вы сохраняете файлы макета, то есть app/views/layouts/index.master.php, и если у вас есть что-то похожее, вы должны использовать что-то например:

@extends('layouts.master')

@section('content')
    <p>Page Content</p>
@stop

Это наследует/использует файл master.blade.php (как макет) из папки layouts, здесь layouts.master означает layouts/master.blade.php.

В вашем файле master.blade.php у вас есть этот

@yield('content')

Итак, данные/контент из представления между @section('content') и @stop будут сбрасываться вместо @yield('content') вашего макета.

Вы можете использовать любое имя для вашего файла layout, если оно layouts/main.blade.php, то вы должны использовать

@extends('layouts.main')

Ответ 6

скажем, у вас есть "master.blade.php" и "index.blade.php". и оба файла находятся в view- > home directory. если вы хотите использовать @extends в 'index.blade.php', вызывая 'master.blad.php', вы должны записать в файле index.blade.php этот статус:

@extends('home.master')

не

@extends('master')

Ответ 7

Просто сохраните свой источник, используя кодировку UTF-8 without signature.