我有一个每个页面的视图,如下所示:
<!-- {pagename}.blade.php --!>
@extends((($nolayout == true) ? 'layouts.plain' : 'layouts.base'))
@section('title')
<title><!-- some title here --!></title>
@stop
@section('content')
<section class="container clearfix">
<!-- some content here --!>
</section>
@stop
我的plain.blade.php文件只包含这个:
@yield('content')
还有一个base.blade.php文件,其中还包含一些包装标签,但这与此无关。
当我尝试将视图附加到我的主视图时,如下所示:
@include('about', array('nolayout' => true))
@include('offer', array('nolayout' => true))
@include('contact', array('nolayout' => true))
它多次追加第一个视图(在这种情况下,它将包含3次)。这些视图中的每一个都可以单独包含并且工作正常,但是当我堆叠它们时,我调用的第一个视图会被重复。
答案 0 :(得分:1)
如果要求,将包含包含内容的部分。在大多数情况下,由于父母在孩子面前呈现,您将一遍又一遍地获得相同的数据。作为部分,实质上是填充容器,此实例中的“内容”容器将填充第一个@include
上的数据。当它被延长第二次和第三次时,它立即被要求产生内容,尽管孩子有效地说,用x量的内容覆盖该部分。
我不是100%确定plain.blade布局文件的目的,如果它只是产生一个部分。你最好在你的主布局标题部分中有一个不会产生的基础部分。然后,每个包含应该调用@parent
刀片方法将其数据附加到已填充的部分,然后在准备就绪后生成。
评论示例
如果布局中有@yield
,请尝试
@section('content')
{{-- Parent Content --}}
@stop
在您的孩子视图中
@section('content')
@parent
{{-- Content to append --}}
@stop
然后在渲染视图中
@include('about', array(...))
@include('another', array(...))
@yield('content')