Почему содержимое моего шаблона Blade отображается дважды?

У меня проблемы с шаблонами лезвий. По какой-то причине я дважды распечатываю содержимое моего представления, один раз с помощью yield, где я ожидал, а также в другой раз, прежде чем расширенное представление выполнит какое-либо действие.

Мой маршрут:

Route::get('/', array('as' => 'home', function () {
    return View::make('default');
}));

Представление по умолчанию (default.blade.php) таково:

@extends('test')

@section('title')
    Default
@show

@section('content')
    <p>Content goes here<p>
@show

И тестовый вид (test.blade.php) таков:

<h1>Anything above should be be there!</h1>
<h3>@yield('title')</h3>
@yield('content')

И это генерирует:

Default
<p>Content goes here<p>
<h1>Anything above should be be there!</h1>
<h3>Default</h3>
<p>Content goes here<p>

person vikingsfan19    schedule 24.06.2013    source источник


Ответы (2)


Пытаться

@extends('test')

@section('title')
    Default
@stop

@section('content')
    <p>Content goes here<p>
@stop
person Antonio Carlos Ribeiro    schedule 24.06.2013
comment
Ах, я не уловил разницы между показом и остановкой. Спасибо! - person vikingsfan19; 25.06.2013
comment
Хотите объяснить разницу между «показать» и «стоп»? - person Julian; 25.03.2014
comment
Если вы используете @show, Laravel предполагает, что это ваше значение по умолчанию, которое может быть переопределено другим @section('content'). - person Antonio Carlos Ribeiro; 25.03.2014

Разве это не должно быть...@stop вместо @show

@extends('test')

@section('title')
Default
@stop

@section('content')
<p>Content goes here<p>
@stop
person Kylie    schedule 24.06.2013