Laravel blade:你能否产生一个默认的部分

时间:2014-07-03 09:15:30

标签: php laravel laravel-blade

如果我在RightSideBar.blade.php中有一个名为Laravel blade的布局,则一个区域为yield('content'),另一个区域为yield('sidebar')

如果展开default partial的视图没有RightSideBar,是否有内置方式显示section('sidebar')

我知道您可以通过默认传递,只是想知道是否有办法让默认值成为部分。

4 个答案:

答案 0 :(得分:27)

是的,您可以传递默认

查看documentation

@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