刀片不支持嵌套产量

时间:2016-02-19 03:59:14

标签: php laravel-5.1 blade laravel-blade

我有一个示例视图:

文件:hello.blade.php

//includes the basic html enclosed tags
<p>Hello world<p>
@yield('content')

文件:tester.blade.php

@extends('hello')
@section('content')
  <p>this is a test<p>
  @yield('contents') 
@endsection

文件:content.blade.php

@extends('tester.blade.php')
@section('contents')
  <p>any code will do<p>
@endsection

现在我的问题是它只呈现

Hello world
this is a test

这有什么解决方法吗?或者刀片引擎不支持嵌套产量? anyhelp将不胜感激

2 个答案:

答案 0 :(得分:1)

我尚未测试,但您可以尝试将content.blade.php更改为

@extends('tester')

并确保使用

return view('content');

@include内的@section有效。或使用@parent

中的content.blade.php
@extends('tester')
@section('content')
   @parent 
   <p>any code will do</p>
@endsection

@parent会导致Blade使用当前视图附加父视图内容,而不是覆盖整个部分。

答案 1 :(得分:0)

我已经测试过了,但是没有达到我们的期望。

但是面对这种情况,我仍然有一种解决方案。我这样使用@parent刀片指令

文件:hello.blade.php

{{-- includes the basic html enclosed tags --}}
<p>Hello world<p>
@yield('content')

文件:tester.blade.php

@extends('hello')
@section('content')
  <p>this is a test<p>
  @yield('contents') 
@endsection

文件:content.blade.php

@extends('tester.blade.php')
@section('contents')
  @parent
  <p>any code will do<p>
@endsection