在myosis框架版本1.2中使用Scout模板

时间:2017-09-27 09:56:03

标签: php html laravel blade

我希望有人可以在myosis 1.2 scout模板中使用@sectoin和@yield命令时帮助我理解。

基本上我有一个带有一些基本html标记的视图“/views/my-page.scout.php”:

@include('includes.header')
  <div> some content </div>
  @yield('extra-content')
@include('includes.footer')
enter code here

然后在“views / extras / extra-content.scout.php”中的另一个文件内部,我有以下内容:

@section('extra-content')
  <div>Some extra content</div>
@stop

我不知道为什么我的@yield不能正常工作,我知道我可以使用@include,但我想更好地理解使用@yield。我已经查看了laravelthemosis文档,但我仍感到困惑。

任何帮助都将非常感激。 :)

档案位置: /views/extras/extra-content.scout.php

文件名: extra-content.scout.php

文件内容:

@section('extra-content')
  <div>Some extra content</div>
@stop

档案位置: /views/my-page.scout.php

文件名: my-page.scout.php

文件内容:

@include('includes.header')
  <div> some content </div>
  @yield('extra-content')
@include('includes.footer')

1 个答案:

答案 0 :(得分:0)

文件:my-page.scout.php

@include('includes.header')

@include('extras.extra-content')
  <div> some content </div>
  @yield('extra-content')
{{-- or include here @include('extras.extra-content') --}}
{{-- or include here @include('extras.extra-content') --}}
@include('includes.footer')

文件extra-content应明确包含在此文件或其扩展/包含的任何文件中。

yield只会将内容存储在变量中,并且可以在此文件中使用。 在您的用例中,包括可能是最好的方法,因为您的文件只包含该部分。想象一个额外内容文件,您将输出一些内容处理&#39; extra-content`变量

部分内容将始终放在您产生的位置。

此代码

@section('my-content')
i want to place to place this content somewhere
@stop

将被解释为:

$sections['my-content'] = 'i want to place to place this content somewhere';

yield('my-content');

被解释为

echo isset($sections['my-content']) ? $section['my-content']:'';

编辑想象您的文件额外内容,您定义该部分并不仅包含部分定义:

文件:extra-content

@section('my-content')
this is yielded content displayed where you use yield('my-content')
@stop
<p> this will be displayed where the file is included</p>