2013-09-06 7 views
5

Ich suche Bootstrap meine Website und als solche, haben gemeinsame twitter Bootstrap-Komponenten in Blade-Vorlagen.Laravel Blade Templates Abschnitt Wiederholt/Cachefehler

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> 

Auf diese Weise jedes Mal wenn ich möchte eine Platte verwenden, dann kann ich @extends('panelTemplate') verwenden.

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 

Das Problem, das ich bin vor, dass statt den Inhalt panel1.blade.php zeigt, dann die Inhalte von panel2.blade.php als erklärt in sidebar.blade.php der Inhalt von panel1.blade.php wird wiederholt (zweimal angezeigt).

Speichert Blade die Anforderung, weshalb panel1 zweimal wiederholt wird? Gibt es eine Möglichkeit, dieses Verhalten zu überschreiben, oder verwende ich die Blade-Templating-Engine auf eine Weise, die nie beabsichtigt war?

Antwort

7

Sie können dies durch overwriting erreichen die Abschnitte .. versuchen, was Sie haben schon, aber mit diesen beiden aktualisierten Teilansichten:

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 

Es ist getestet und hier zu arbeiten, obwohl ich nicht bin Sicher ist es die beabsichtigte Verwendung von @overwrite, also gründlich testen!

+0

Schön !!! Vielen Dank!!! – Gravy

+0

Ausgezeichnete Antwort! Leider ist Ihr Link nicht verfügbar und ich kann in den Dokumenten nichts über '@ overwrite' finden. Freut mich, die Antwort ist hier! – samrap

+0

@samrap - da gehst du, Link korrigiert :) - Es war in Version 4.2, müssen Sie für v5 von Laravel überprüfen .. – msturdy