为啥我的 Blade 模板内容显示两次?

Posted

技术标签:

【中文标题】为啥我的 Blade 模板内容显示两次?【英文标题】:Why is my Blade template content displayed twice?为什么我的 Blade 模板内容显示两次? 【发布时间】:2013-06-21 11:18:06 【问题描述】:

我的刀片模板有问题。出于某种原因,我将视图的内容打印了两次,一次是我期望的yield,另一次是在扩展的视图执行任何操作之前。

我的路线是:

Route::get('/', array('as' => 'home', function () 
    return View::make('default');
));

默认视图 (default.blade.php) 是这样的:

@extends('test')

@section('title')
    Default
@show

@section('content')
    <p>Content goes here<p>
@show

测试视图(test.blade.php)是这样的:

<h1>Anything above should be be there!</h1>
<h3>@yield('title')</h3>
@yield('content')

这会产生:

Default
<p>Content goes here<p>
<h1>Anything above should be be there!</h1>
<h3>Default</h3>
<p>Content goes here<p>

【问题讨论】:

【参考方案1】:

这不应该是...@stop 而不是@show

@extends('test')

@section('title')
Default
@stop

@section('content')
<p>Content goes here<p>
@stop

【讨论】:

【参考方案2】:

试试

@extends('test')

@section('title')
    Default
@stop

@section('content')
    <p>Content goes here<p>
@stop

【讨论】:

啊,我没听懂 show 和 stop 的区别。谢谢! 想解释一下“show”和“stop”的区别吗? 如果你使用@show,Laravel 假定这是你的默认值,可以被另一个@section('content') 覆盖。

以上是关于为啥我的 Blade 模板内容显示两次?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel/Blade,内容中的模板内容

渲染 HTML 标签 Laravel 5 Blade 模板

在 Laravel 5 Blade 模板中包含 SVG 内容

为啥我的 Apple Watch 复杂功能不显示任何内容?

将 json 文件导入 Blade 模板

为啥 Angular 2 渲染应用程序组件模板两次