2013-09-06 18 views
5

私は自分のサイトをブートストラップしようとしています。そのため、共通のtwitterブートストラップコンポーネントをブレードテンプレートに入れました。Laravel Bladeテンプレートセクション繰り返し/キャッシュエラー

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 
私が直面しています問題がある

その代わりとして、その後panel2.blade.phpの内容をpanel1.blade.phpの内容を示すのsidebar.blade.phpで宣言されています。panel1.blade.phpの内容が繰り返されています(2回表示)。

ブレードが要求をキャッシュしているため、なぜパネル1が2回繰り返されていますか?この動作を無効にする方法はありますか、ブレードテンプレートエンジンを意図していない方法で使用していますか?

答えて

7

あなたはセクションが..あなたが既に持っているものをしてみてくださいoverwritingすることによって、これを達成するため、これらの更新された2つのサブ景色を望むことができます。

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

ここではテスト済みですが、私はそうではありません@overwriteの意図された使用であることを確認してください。

+0

ニース!!!ありがとう!!! – Gravy

+0

優れた答え!残念ながらあなたのリンクが壊れていて、ドキュメントの '@ overwrite'について何も見つけられません。うれしい答えがここにあります! – samrap

+0

@samrap - リンクが修正されました:) - バージョン4.2で、Laravelのv5を確認する必要があります。 – msturdy