Я попытался использовать систему шаблонов laravel: blade
но похоже, что она не работает при использовании приведенного ниже кода в файле users.blade.php
:
@extends('layout')
@section('content')
Users! @stop
и браузер,
@extends('layout')
Я попытался использовать систему шаблонов laravel: blade
но похоже, что она не работает при использовании приведенного ниже кода в файле users.blade.php
:
@extends('layout')
@section('content')
Users! @stop
и браузер,
@extends('layout')
Это должно работать, если у вас есть файл шаблона в /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>
Я надеюсь, что это поможет вам прояснить ситуацию. Если нет, можете ли вы указать расположение файлов шаблонов и соответствующий контент?
Просто удалите лишнее пространство или что-то еще до @extends ('yourlayoutfile').
Это должно быть первое, что нужно сделать в файле.
Я столкнулся с той же проблемой и попробовал много вещей. Вдруг я обнаружил одно место при запуске файла до @extends.
Удалено пространство и работает нормально.
Спасибо.
Формат:
@extends('layouts.default')
@section('content')
.....
@stop
--- Edit ----
Если это не помогло, попробуйте:
Скопируйте все содержимое в файл и затем удалите файл.
Создайте новый файл и сохраните его как filename.blade.php
Только после сохранения файла вставьте содержимое на страницу. Сохраните изменения и запустите их.
Это работает.
Спасибо.
Где находится ваш макет?
Если его в app/views/layouts
, то это должно быть
@extends('layouts.index')
(при условии, что имя index.blade.php)
ex: @extends('layouts.foo')
равно файлу в app/views/layouts/
, называемому либо foo.blade.php
, либо foo.php
. (в зависимости от того, используете ли вы лезвие)
У меня та же проблема. Что сделано: 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');
}
Вы можете посмотреть эту ссылку: Определение макета на контроллере
По умолчанию 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')
скажем, у вас есть "master.blade.php" и "index.blade.php". и оба файла находятся в view- > home directory. если вы хотите использовать @extends в 'index.blade.php', вызывая 'master.blad.php', вы должны записать в файле index.blade.php этот статус:
@extends('home.master')
не
@extends('master')
Просто сохраните свой источник, используя кодировку UTF-8 without signature
.