Laravel @stack ve @push Direktifleri
@stack
direktifi, belirlenen isimle bir alan oluşturmanızı sağlar. Böylece @push
direktifini kullanarak diğer view'larınızda bu alana sayfaya özel içerikler ekleyebilirsiniz.
Örneğin sayfaya özel js, css ya da bir takım diğer kodları bu sayede sadece o sayfaya girince gösterebilirsiniz.
Layout sayfanızda bu örnekte benim ki layouts/index.blade.php
şeklinde, <head>
etiketimin içerisinde custom-head
adında bir alan oluşturdım.
// layouts/index.blade.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{{ config('app.name', 'Laravel') }}</title>
..
@stack('custom-head')
..
</head>
Ve artık alt view'larımda o sayfama özel bir css, js ya da herhangi bir kod ekleteceksem @push
direktifini kullanabiliriz.
// users.blade.php
@extends('layout')
@push('custom-head')
<link href="{{ mix('css/users.css') }}">
@endpush
@section
ve @yield
direktiflerinden farklı olarak, bu direktifler ile birden fazla kez içerik ekleyebilirsiniz. Ancak @section
ve @yield
direktifleri bir sefere mahsus içerik ekletir. Ve ek olarak, genişleteceğiniz sayfayı
@extends
direktifi ile belirlemeniz gerektiğini unutmayın.