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

Using Scout templating in themosis framework version 1.2

我希望有人能帮助我理解在 themosis 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。我查看了 laravel and themosis 文档,但我仍然感到困惑。

如有任何帮助,我们将不胜感激。 :)


文件位置:/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')

文件:我的-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 应明确包含在此文件或它是 extending/including 的任何文件中。

yield 只会将内容存储在一个变量中,并将在此文件中可用。 在您的用例中,包括可能是最好的方法,因为您的文件仅包含该部分。想象一个额外内容文件,您将在其中输出一些内容 and handle 'extra-content` variable

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

此代码

@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']:'';

编辑假设您定义部分的文件额外内容不只包含部分定义:

文件:额外内容

@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>