2013-09-06 30 views
5

Sitemi önyükleme yapmak istiyorum ve bu nedenle, ortak twitter önyükleme bileşenlerini blade şablonlarına yerleştirdik.Laravel Blade Şablonları Bölümü Tekrarlanan/önbellek hatası

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> 

Bu şekilde, ben bir panel kullanmak isteyen her zaman, o zaman ben @extends('panelTemplate') kullanabilirsiniz.

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 
Karşılıklı sorun olduğunu

yerine olarak daha sonra panel2.blade.php içeriğini panel1.blade.php içeriğini gösteren sidebar.blade.php'da bildirilen panel1.blade.php'un içeriği tekrarlanır (iki kez gösterilir).

Blade isteğe neden önbelleğe alıyor ve bu nedenle panel1 iki kez tekrarlanıyor? Bu davranışı geçersiz kılmanın bir yolu var mı, yoksa kanat şablonunu asla amaçlanmadığı şekilde mi kullanıyorum?

cevap

7

Sen bölümler .. Zaten ne denemek overwriting bunu başarmak ancak bu iki güncellenen alt manzarasına sahip olabilir:

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 

Bu test edilmiş ve burada çalışıyor, ben değilim gerçi emin olun @overwrite amaçlanan kullanım, bu yüzden tamamen test edin!

+0

Güzel !!! Teşekkürler!!! – Gravy

+0

Mükemmel cevap! Maalesef bağlantınız bozuk ve dokümanlardaki '@ overwrite 'ile ilgili bir şey bulamıyorum. Cevabın burada olduğuna sevindim! – samrap

+0

@samrap - işte gideceksin, bağlantı düzeltildi :) - 4.2 sürümünde, Laravel'in v5'ini kontrol etmelisin .. – msturdy

İlgili konular