如果我在RightSideBar.blade.php
中有一个名为Laravel blade
的布局,则一个区域为yield('content')
,另一个区域为yield('sidebar')
。
如果展开default partial
的视图没有RightSideBar
,是否有内置方式显示section('sidebar')
?
我知道您可以通过默认传递值,只是想知道是否有办法让默认值成为部分。
答案 0 :(得分:27)
是的,您可以传递默认
@yield('sidebar', 'Default Content');
当子模板没有@section('sidebar')
答案 1 :(得分:10)
大多数情况下,我们需要多行默认内容,我们可以使用以下语法:
using (Stream stream = File.Open("joys.xml", FileMode.Create))
{
var bformatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bformatter.Serialize(stream, usedsticks);
}
例如我在模板文件中有这个:
@section('section')
Default content
@show
你可以看到@show和@ stop / @ endsection之间的区别:上面的代码相当于下面的代码:
@section('customlayout')
<article class="content">
@yield('content')
</article>
@show
在其他视图文件中,我可以只设置内容:
@section('customlayout')
<article class="content">
@yield('content')
</article>
@stop
@yield('customlayout')
或者我也可以设置不同的布局:
@section('content')
<p>Welcome</p>
@stop
@stop等同于@endsection。
答案 2 :(得分:2)
尽管文档仅将默认值指定为字符串,但实际上您可以传递视图
@yield('sidebar', \View::make('defaultSidebar'))
答案 3 :(得分:1)
Laravel 5.2添加了<!-- The form -->
<form method="post">
<label>
<input type="text" name="name" value="<?=$name ?? ""; ?>">
</label>
<!-- Show if error -->
<?php if (!empty($err)) { ?>
<span class="error">
<?=$err ?>
</span>
<?php } ?>
<br>
<input type="submit" name="submit" value="Submit">
</form>
<?php if (isset($name) && empty($err)) { ?>
<p>Hi <?=$name ?>!</p>
<p>Welcome to our store!</p>
<?php } ?>
指令,该指令检查是否在视图中定义了节。
出于某些原因,在5.3或5.4文档中没有提到它。
@hasSection