Si usa la direttiva @yield per creare un punto di aggancio tra il template e la vista.
Tuttavia è frequente la casistica che vuole il template base avere una sezione già con contenuto, per esempio il footer, a cui la vista parziale deve solo aggiungere qualcosa senza però sovrascrivere tutto il contenuto del pezzo di template.
Per fare questo nel template base NON si usa più @yield ma si usa proprio una sezione @section come quando siamo nelle viste parziali.
<?php <footer class="page-footer" style="background-color: black; color: white; padding-left:300px"> <div class="container"> <div class="row"> @section('footer') Sono il footer - Realizzato da me 2018 @show </div> </div> <div class="footer-copyright"> <div class="container"> © 2018 Qualcuno </div> </div> <script src="https://code.getmdl.io/1.3.0/material.min.js"></script> </footer> ?>
Nel footer creiamo una sezione che rappresenta il punto in cui possiamo far agganciare il pezzo della vista parziale. Qui nell'esempio la sezione "sensibile" è molto piccola perché racchiusa in un DIV ma è possibile farla anche più grande. Dovete solo considerare che quello che mettete viene aggiunto in coda.
IMPORTANTE: E' buona norma mettere il JAVASCRIPT in fondo alla pagina quindi conviene creare nel footer una sezione chiamata javascript dove le viste parziali possono aggiungere il loro codice javascript o includere js esterni.
Nella nostra vista parziale basta quindi creare la section come se dovessimo farla mettere in uno @yield ma preoccupandoci di mettere @parent per fare in modo di ereditare il pezzo del padre altrimenti il nostro lo sovrascriverebbe come se ci fosse @yield.
@section('footer') @parent - Sono una aggiunta @stop
Il risultato finale della scritta nel footer sar: Sono il footer - Realizzato da me '2018 - Sono una aggiunta
Nessun commento:
Posta un commento