Laravel Blade模板部分重复/缓存错误

时间:2013-09-06 13:58:40

标签: laravel laravel-4 templating twitter-bootstrap-3 blade

我期待Bootstrap我的网站,因此,已将常见的twitter引导组件放入刀片模板。

sidebar.blade.php

@include('panel1')
@include('panel2')

panelTemplate.blade.php

<div class="panel panel-primary">   
    <div class="panel-heading">
        <div class="panel-title">
            @yield('title')
        </div>
    </div>
    <div class="panel-body">
            @yield('body')
    </div>
    <div class="panel-footer">
            @yield('footer')
    </div>
</div>

这样,每次我想使用面板时,我都可以使用@extends('panelTemplate')

panel1.blade.php

@extends('panelTemplate')
@section('title')
 title panel 1
@stop

@section('body')
 body panel 1
@stop

@section('footer')
 footer panel 1
@stop

panel2.blade.php

@extends('panelTemplate')
@section('title')
 title panel 2
@stop

@section('body')
 body panel 2
@stop

@section('footer')
 footer panel 2
@stop

我面临的问题是,panel1.blade.php的内容panel2.blade.php正在sidebar.blade.php中,而不是显示panel1.blade.php的内容。重复(显示两次)。

Blade是否缓存了请求,这就是为什么panel1重复两次?有没有办法覆盖这种行为,或者我是否以一种从未想过的方式使用刀片模板引擎?

1 个答案:

答案 0 :(得分:9)

你可以通过overwriting部分实现这一点..尝试你已经拥有的,但是有了这两个更新的子视图:

<强> panel1.blade.php

@extends('panelTemplate')

@section('title')
 title panel 1
@overwrite

@section('body')
 body panel 1
@overwrite

@section('footer')
 footer panel 1
@overwrite

<强> panel2.blade.php

@extends('panelTemplate')

@section('title')
 title panel 2
@overwrite

@section('body')
 body panel 2
@overwrite

@section('footer')
 footer panel 2
@overwrite

虽然我不确定这是@overwrite的预期用途,但已在此处进行了测试和测试,因此请彻底测试!