2016-02-27 7 views
15

हम कुछ HTML को परिभाषित करने के लिए section का उपयोग कर सकते हैं और फिर yield कहीं और।ब्लेड में सेक्शन और स्टैक के बीच क्या अंतर है?

तो हमारे पास ढेर क्यों हैं? https://laravel.com/docs/5.2/blade#stacks

यह अलग-अलग कीवर्ड के साथ बिल्कुल वही काम कर रहा है, लेकिन इसमें कम विकल्प हैं (कोई विरासत नहीं)।

@push('scripts') 
    <script src="/example.js"></script> 
@endpush 

<head> 
    <!-- Head Contents --> 

    @stack('scripts') 
</head> 

अनुभाग के साथ किया जा सकता है:

@section('scripts') 
    <script src="/example.js"></script> 
@endsection 

<head> 
    <!-- Head Contents --> 

    @yield('scripts') 
</head> 

उत्तर

23

मैं गलत हो सकता है, लेकिन अंतर केवल शब्दार्थ नहीं है, लेकिन व्यवहार में भी। @push के रूप में एक ढेर करने के लिए आवश्यक आप रूप में कई बार संलग्न , जबकि (डिफ़ॉल्ट रूप से) आप अपने विचारों में @section केवल एक बार भर सकते हैं के साथ। कुछ स्थितियों में इस काम में आता है जब आप अपने टेम्पलेट फ़ाइलों में या छोरों में विभिन्न स्थानों से सामग्री जोड़ने की जरूरत:

index.blade.php:

@extends('master') 

... 

@for ($i = 0; $i < 3; $i++) 

    @push('test-push') 
    <script type="text/javascript"> 
    // Push {{ $i }} 
    </script> 
    @endpush 

    @section('test-section') 
    <script type="text/javascript"> 
    // Section {{ $i }} 
    </script> 
    @endsection 

@endfor 

master.blade.php

@stack('test-push') 
    @yield('test-section') 
</body> 

परिणाम:

<script type="text/javascript"> 
    // Push 0 
    </script> 
     <script type="text/javascript"> 
    // Push 1 
    </script> 
     <script type="text/javascript"> 
    // Push 2 
    </script> 
    <script type="text/javascript"> 
    // Section 0 
    </script> 
    </body> 
+2

'@ सेक्शन @ एपेंड' के बारे में क्या? मेरा मानना ​​है कि उनके पास एक ही व्यवहार है। – Fortael

2

ढेर किसी न किसी प्रकार उचित च है या स्क्रिप्ट, स्टैक के साथ आप जितना चाहें उतना जोड़ सकते हैं।

@push('scripts') 
    <script src="/example.js"></script> 
@endpush 

संलग्न ...

<head> 
<!-- Head Contents --> 

@stack('scripts') 
</head> 

आप देख सकते हैं लिपियों ढेर example.js की स्क्रिप्ट टैग के तहत जोड़ दिए जाएंगे। तो आप प्रत्येक दृश्य के लिए विशेष स्क्रिप्ट को धक्का दे सकते हैं।

संबंधित मुद्दे