Der Blade-Befehl @stack ist sehr nützlich, wenn es z.B. darum geht, template-individuelles JavaScript im Template zu definieren, jedoch erst am Ende des generierten Quelltextes auszugeben (damit eventuell erforderliche Bibliotheken vorher geladen werden können).
Dazu „pusht“ man im Extension-Template den individuellen Code und fügt diesen dann im Haupttemplate (index) via @stack ein. @push kann dabei beliebig oft eingesetzt werden und wird in der Reihenfolge eingefügt, wie die Templates eingebunden sind.
1 2 3 4 5 6 7 8 9 10 11 |
// file extension-template.blade.php @extends('index') @push('additional-inline-js') <script> $(function() { alert("ich werde nur hier ausgegeben"); }); </script> @endpush |
1 2 3 4 5 6 7 8 9 10 11 |
// file index.blade.php <body> // HTML DOCUMENT CONTENT <header>Header Stuff</header> <main>Main content</main> <footer>Footer stuff</footer> <script src="path/to/jquery.js"></script> @stack('additional-inline-js') </body> |
Siehe hierzu auch meinen Artikel Pushing und Stacking ohne Laravels Blade