繁体   English   中英

Laravel Blade有条件@Yield

[英]Laravel Blade Conditional @Yield

我有一个刀片视图,可以使用我的模板

@extends('layouts.master')

如果我的子视图上的部分为true,则我想在该模板中显示2个按钮,而不是必须在使用该模板的每个子视图中都包含两个按钮。

例如,我的布局(代码段)

@yield('buttons')
  <div>
    <button>BUTTON 1</button>
    <button>BUTTON 2</button>
  </div>
@show 

@yield('content)

这是我的孩子观

@extends('layouts.master')

@section('buttons',false)

@section('content')
  <p>Hello world!</p>
@endsection

我知道它无法像我尝试过的那样工作,但是可能会发生这种情况吗? 我也尝试过将@yield('buttons')包裹在@if中,但这是不可能的,因为@yield显然只能在函数中使用。

在我的主布局中,我将@yield替换为@section

@section('buttons')

  <button>BUTTON 1</button>
  <button>BUTTON 2</button>

@endsection

在我的子视图中,我使用

@section('buttons','')

如果您希望保留默认值并将其他内容放在之前或之后,然后使用@parent在其他内容之前或之后使用,例如,在我的子视图中,它将替换默认值:

@section('buttons')
   Additional content to be inserted before the buttons in my master layout.
   @parent
@endsection

输出:

我的主版式中的按钮之前要插入的其他内容。 按钮1按钮2

参考: https : //laravel.com/docs/5.5/blade

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM