2015-12-21 121 views
0

我有一個包含以下內容的基地佈局:Laravel 5 @section不工作

@section('javascripts') 
    <script src="<?php echo asset('js/all.js') ?>"></script> 
@endsection 

在我的孩子我的模板有以下幾點:

@extends('layouts.master') 

<!-- some other html code --> 
@section('javascripts') 
    @parent 
    <!-- some local scripts --> 
    <script> 
     $(function() { console.log('test'); }); 
    </script> 
@endsection 

我從兩個Java腳本父母和孩子根本沒有加載。

但是,以下工作: 基地佈局:

<!-- load main scripts --> 
<script src="<?php echo asset('js/all.js') ?>"></script> 
@yield('javascripts') 

子模板:

@extends('layouts.master') 

<!-- some other html code --> 
@section('javascripts') 
    <!-- some local scripts --> 
    <script> 
     $(function() { console.log('test'); }); 
    </script> 
@endsection 

回答

0

的確,您可以使用stacks但對於您的問題,您沒有正確關閉section。而不是@endsection您必須在您的基本佈局使用@show

@section('javascripts') 
    <script src="<?php echo asset('js/all.js') ?>"></script> 
@show 
0

你就能更好地運用@stack和@push結構在這裏,我想。這應該是這樣的

在你的父模板,你可以添加一個@stack標籤,你會看到類似這樣的

<head> 
    <title>My website</title> 
    @stack('scripts') 
</head> 

JavaScript代碼然後在你的子模板,您將使用@push標籤它看起來像這樣。

@push('scripts') 
<script> 
    $(function() { console.log('test'); }); 
</script> 
@endpush 

這將推動你的JavaScript從孩子模板父模板的堆棧。

我發現,其中解釋上laracasts的話題。 https://laracasts.com/discuss/channels/general-discussion/blade-push-and-stack-are-they-here-to-stay

+0

哇,他們沒有這個在文檔中 –