2013-09-06 31 views
5

Szukam Bootstrap na mojej stronie i jako taki umieściłem wspólne elementy bootstrapowe Twittera w szablonach ostrzy.Sekcja szablonów ostrzy Laravel Powtarzający się/błąd pamięci podręcznej

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> 

W ten sposób, za każdym razem, kiedy chcesz używać panelu, to mogę używać @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 

Problem, że jestem stoi to, że zamiast pokazywać zawartość panel1.blade.php, wówczas zawartość panel2.blade.php jako zadeklarowany w sidebar.blade.php treść numeru panel1.blade.php jest powtarzana (pokazana dwukrotnie).

Czy Blade buforuje żądanie, dlatego panel1 jest powtarzany dwukrotnie? Czy istnieje sposób na obejście tego zachowania lub czy używam silnika szablonowego ostrzy w sposób, który nigdy nie był zamierzony?

Odpowiedz

7

Można to osiągnąć przez overwriting odcinki .. spróbować tego, co już masz, ale z tych dwóch zaktualizowanych cząstkowych widoków:

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 

To sprawdzony i pracuje tutaj, choć nie jestem jasne, że to zamierzone użycie @overwrite, więc sprawdź dokładnie!

+0

Nice !!! Dzięki!!! – Gravy

+0

Doskonała odpowiedź! Niestety twój link jest zepsuty i nie mogę znaleźć niczego na temat '@ overwrite' w dokumentach. Cieszę się, że odpowiedź jest tutaj! – samrap

+0

@samrap - proszę, poprawione łącze :) - To było w wersji 4.2, musisz sprawdzić wersję V Laravel .. – msturdy