6

我正在寻找引导我的网站,因此,已将常见的 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 重复两次的原因?有没有办法覆盖这种行为,或者我是否以从未想过的方式使用刀片模板引擎?

4

1 回答 1

9

您可以通过覆盖这些部分来实现这一点。尝试您已经拥有的内容,但使用以下两个更新的子视图:

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,所以彻底测试!

于 2013-09-06T15:56:18.873 回答