我正在使用Laravel开发Web应用程序。我现在正在做的是使用刀片堆栈功能(如此处提到的https://laravel.com/docs/5.7/blade#stacks)呈现内容。问题是它不起作用。请参阅下面的简单代码。
这是我的查看内容
@extends('layouts.app')
@stack('stack_content')
<h1>Other contents</h1>
@prepend('stack_content')
<h1>This is my name</h1>
@endprepend
@section('content')
@endsection
它不起作用的原因是它没有显示此内容
<h1>This is my name</h1>
完全没有 不仅堆栈区域,还包括原始区域。怎么了?
堆栈应在布局中使用。将堆栈放在同一刀片模板中的原因(如果有的话)并不多。
在文档的示例中,堆栈是在布局的中定义的<head>
。扩展该布局的模板是您将代码推送或添加到该堆栈的位置。(尽管文档可能对此更加清楚)
呈现刀片视图的各个部分,然后将它们放置在扩展布局中的适当位置,这使得可以定义内容的加载位置。
您不能使用yield定义一个部分,然后在该部分中定义内容。一旦布局命中@yield或@stack,它将呈现该部分中定义的内容。
换句话说,这是可行的,因为节内容在到达yield之前就已呈现:
@section('test')
<h1>Hello World</h1>
@endsection
@yield('test')
但这不会:
@yield('test')
@section('test')
<h1>Hello World</h1>
@endsection
相同的逻辑顺序适用于堆栈。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句