Php Laravel 4-多次扩展主模板中声明的节

Php Laravel 4-多次扩展主模板中声明的节,php,templates,laravel-4,blade,template-inheritance,Php,Templates,Laravel 4,Blade,Template Inheritance,我有一个场景,其中我有一个主模板,它定义了一个标题部分。看起来像这样 <!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') }} @show </h

我有一个场景,其中我有一个主模板,它定义了一个标题部分。看起来像这样

<!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') }}
@show
</head>
<body>
    <div class="planesaleing_page">
        <header>
@yield('header_bar')
@yield('nav_bar')
@yield('search_bar')
        </header>
        <div class="main_page">
                // Some more code
        </div>
@yield('footer')
    </div>
</body>
</html>
@section('header')
@parent
    {{ HTML::script('js/anotherjs.js') }}
@stop
然后再次在搜索栏中,如下所示:

@section('header')
@parent
    {{ HTML::script('js/yetanotherjs.js') }}
@stop
@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
@extends('master')
 @section('header')
 @parent
    {{ HTML::script('js/anotherjs.js') }}
 @stop
其目的是最终输出的html文件如下所示:

@section('header')
@parent
    {{ HTML::script('js/yetanotherjs.js') }}
@stop
@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
@extends('master')
 @section('header')
 @parent
    {{ HTML::script('js/anotherjs.js') }}
 @stop
@节(“标题”) {{HTML::style('css/planesaleing.css')} {{HTML::script('js/jquery-1.10.1.js')} {{HTML::script('js/search_Bar.js')} {{HTML::script('js/anotherjs.js')} {{HTML::script('js/yetanotherjs.js')} @展示

然而,实际上只有第一个扩展了标题,之后的所有其他扩展似乎都被忽略了。是否仍然可以使用多个扩展


任何建议-非常感谢。

首先,当您在视图中扩展布局时,您开始一个部分,然后“停止”。像这样:

@section('header')
@parent
    {{ HTML::script('js/anotherjs.js') }}
@stop
如何扩展布局?我不确定是否有多个布局相互扩展,然后通过视图进行扩展,或者有多个视图,每个视图都扩展此特定布局。在后面的例子中,一个视图不会对另一个视图产生任何影响

如果您使用的是前一种方法,那么更多的示例代码会很有帮助,因为我认为您在某个时候编写的值太多了

希望能有帮助

编辑

当你说:

<header>
   @yield('header_bar')
   @yield('nav_bar')
   @yield('search_bar')
</header>
现在,如果我们看一下这个,结果是:

<!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>
但是,我不确定这些部分是否会从每个子视图级联。你可以试试这个

因此,您将有一个名为index.blade.php的视图,它看起来像:

@extends('master')

@include('search_bar')
@include('nav_bar')
@include('foo_bar')
然后您将拥有单独的文件,如search_bar.blade.php和其他文件,这些文件将扩展master并填充如下占位符:

@section('header')
@parent
    {{ HTML::script('js/yetanotherjs.js') }}
@stop
@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
@extends('master')
 @section('header')
 @parent
    {{ HTML::script('js/anotherjs.js') }}
 @stop

我相信(还没有测试过)这应该适合你的工作。然后,它可以级联来自所有子视图的输入,并根据需要将其放在一起。因此,所有子视图都将填充标题部分,这应该在最终输出中级联在一起。试试看,如果它有效,那就太好了!!否则,请尝试另一种注入脚本的方法。

我对问题进行了编辑,以进一步明确我试图实现的目标……基本上,我正在尝试做您提到的第二件事。。。