Po pierwsze, gdy rozszerzasz układ w widoku, uruchamiasz sekcję, a następnie "zatrzymujesz". W ten sposób:
@section('header')
@parent
{{ HTML::script('js/anotherjs.js') }}
@stop
W jaki sposób rozszerzasz układy? Nie jestem pewien, czy masz wiele układów, które się wzajemnie rozszerzają, a następnie są rozszerzane o widoki lub masz wiele widoków, z których każdy rozszerza ten układ. Teraz w późniejszym przypadku jeden widok nie będzie miał żadnego wpływu na inny widok.
Jeśli używasz wcześniejszego podejścia, kilka dodatkowych przykładowy kod byłby pomocny, ponieważ myślę, że nadpisałeś wartości w pewnym momencie.
Mam nadzieję, że to pomaga.
EDIT
kiedy mówisz:
<header>
@yield('header_bar')
@yield('nav_bar')
@yield('search_bar')
</header>
Robisz zastępcze z trzema różnymi nazwami. Zatem nav_bar, search_bar nie są widokami podrzędnymi, ale są one symbolami zastępczymi, które mogą być wypełniane z twoich widoków.
Pozwolę sobie ująć to w inny sposób. Gdy Twoje widoki rozszerzają szablon, wypełnią luki zadeklarowane w szablonie. Zatem każdy z "nagłówka", "paska wyszukiwania" itp. Jest lukami do wypełnienia RAZ. Więc jeśli masz widok o nazwie index.blade.php, możesz wpisać je raz. Więc możesz mieć index.blade.php tak:
@section('header')
@parent
{{ HTML::script('js/anotherjs.js') }}
@stop
@section('header_bar')
@parent
{{ HTML::script('js/yetanotherjs.js') }}
@stop
@section('nav_bar')
@parent
{{ HTML::script('js/foojs.js') }}
@stop
@section('search_bar')
@parent
{{ HTML::script('js/foojs.js') }}
@stop
Teraz, jeśli spojrzymy na to, co będzie skutkować to:
<!DOCTYPE html>
<html>
<head>
@section('header')
{{ HTML::style('css/planesaleing.css') }}
{{ HTML::script('js/jquery-1.10.1.js') }}
{{ HTML::script('js/search_Bar.js') }}//from parent till this point
{{ HTML::script('js/anotherjs.js') }} //comes from view
@show
</head>
<body>
<div class="planesaleing_page">
<header>
{{ HTML::script('js/yetanotherjs.js') }} //comes in place of header_bar as nothing in parent
//@yield('header_bar')
{{ HTML::script('js/foojs.js') }}//comes in place of nav_bar as nothing in parent
//@yield('nav_bar')
{{ HTML::script('js/foojs.js') }}//comes in place for search_bar as nothing in parent
//@yield('search_bar')
</header>
<div class="main_page">
// Some more code
</div>
@yield('footer')
</div>
</body>
</html>
Dlatego właśnie pierwszy z nich wydaje się być rozszerzenie mistrz. Myślę, że powinieneś raz rozważyć sposób, w jaki próbujesz rozszerzyć mistrza.
Co może pracować dla Ciebie jest
@include('view.name') // includes a subview
Jednak nie jestem pewien, czy odcinki będą kaskadowo z każdego podrzędny czy nie. Możesz to wypróbować.
Więc masz widok nazwie index.blade.php który wygląda trochę jak co:
@extends('master')
@include('search_bar')
@include('nav_bar')
@include('foo_bar')
a następnie trzeba będzie oddzielne pliki jak search_bar.blade.php i innych, które przedłuży pana i wypełnić w miejscach zastępczych takich jak to:
@extends('master')
@section('header')
@parent
{{ HTML::script('js/anotherjs.js') }}
@stop
Wierzę (nie przetestowano), że to powinno wykonać twoją pracę. Może następnie kaskadować dane wejściowe ze wszystkich subviews i układać je tak, jak chcesz. Tak więc wszystkie subviews będą wypełniały sekcję nagłówka i powinno to zostać połączone kaskadowo w końcowym wyniku. Wypróbuj i jeśli to działa, WIELKI !! spróbuj innego podejścia do wstrzykiwania skryptów.
Zmieniłem to pytanie, aby zapewnić większą przejrzystość tego, co próbuję osiągnąć ... Zasadniczo próbuję zrobić drugą rzecz o której wspomniałeś ... –
zredagował odpowiedź. wypróbuj to. –