我希望有人可以在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。我已经查看了laravel和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')
答案 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>