包含视图内的Laravel刀片部分(刀片)

时间:2016-08-22 12:49:51

标签: templates laravel-4 blade

我的刀片结构有问题。我有一个基本布局模板,一个内容页面模板和子模板。

将以下片段作为参考

基本模板

<!DOCTYPE html>
<html lang="en">
    @include('head')
</head>

<body>
@include('body-open')
@yield('main')
@include('footer')
@include('body-close')

</body>
</html>

内容模板

@extends('base')
@section('main')
    content

@include('my-other-section-that-has-another-section-declaration-inside')

@overwrite

@section('body.script')
this is an extended script
@stop

正文模板

@section('body-open')
    this is the original content
@stop

my-other-section-that-another-section-declaration-inside模板

this is cool

@section('body-open')
    @parent
    this should append to body open.
@stop

这是我的预期结果

<!DOCTYPE html>
<html lang="en">

</head>

<body>
this is the original content
this should append to body open.

content

this is cool
</body>
</html>

但我正在改变这个内容

<!DOCTYPE html>
<html lang="en">

</head>

<body>
this is the original content

content
this is cool

</body>
</html>

请注意,行应该附加到正文开放。已被跳过,并且不会附加到其预定的部分。

我的代码出错吗?或者这种方法可行吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查您的包含订单。

您首先加载此部分:my-other-section-that-has-another-section-declaration-inside template

@section('body-open')
    @parent
    this should append to body open.
@stop

在上面你尝试拨打@parent - 但是这个是空的,所以你只能在正文开放部分中使用这个:this should append to body open.现在。

在此之后:@include('body-close')您将获得:

@section('body-open')
    this is the original content
@stop

...没有@parent电话 - 所以你将用this is the original content覆盖这一部分 - 这就是你在这里所能想到的。您可以尝试修复它:

@section('body-open')
    this is the original content
    @parent
@stop