Я попытался использовать систему шаблонов 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.