use*_*318 34 php laravel laravel-4
如果@yield有内容,是否可以检查刀片视图?
我正在尝试在视图中分配页面标题:
@section("title", "hi world")
Run Code Online (Sandbox Code Playgroud)
所以我想查看主要的布局视图...类似于:
<title> Sitename.com {{ @yield('title') ? ' - '.@yield('title') : '' }} </title>
Run Code Online (Sandbox Code Playgroud)
cbo*_*gia 61
在Laravel 5中,我们现在有了一个hasSection可以在View立面上调用的方法.
您可以View::hasSection用来检查是否@yeild为空:
<title>
@if(View::hasSection('title'))
@yield('title')
@else
Static Website Title Here
@endif
</title>
Run Code Online (Sandbox Code Playgroud)
这个条件是检查我们的视图中是否设置了标题名称的部分.
提示:我看到很多新工匠设置了这样的标题部分:
@section('title')
Your Title Here
@stop
Run Code Online (Sandbox Code Playgroud)
但你可以通过传入一个默认值作为第二个参数来简化这个:
@section('title', 'Your Title Here')
Run Code Online (Sandbox Code Playgroud)
该hasSection方法于2015年4月15日添加.
2Fw*_*ebd 55
对于现在正在寻找的人(2018+),您可以使用:
@hasSection('name')
@yield('name')
@endif
Run Code Online (Sandbox Code Playgroud)
请参阅:https://laravel.com/docs/5.6/blade#control-structures
Col*_*mes 38
可能有一个更漂亮的方法来做到这一点.但这就是诀窍.
@if (trim($__env->yieldContent('title')))
<h1>@yield('title')</h1>
@endif
Run Code Online (Sandbox Code Playgroud)
Pat*_*ros 17
根据文档给出:
@yield('section', 'Default Content');
Run Code Online (Sandbox Code Playgroud)
输入您的主要布局,例如"app.blade.php","main.blade.php"或"master.blade.php"
<title>{{ config('app.name') }} - @yield('title', 'Otherwise, DEFAULT here')</title>
Run Code Online (Sandbox Code Playgroud)
并在具体的视图页面(刀片文件)中输入如下内容:
@section('title')
My custom title for a specific page
@endsection
Run Code Online (Sandbox Code Playgroud)
小智 10
@hasSection('content')
@yield('content')
@else
\\Something else
@endif
Run Code Online (Sandbox Code Playgroud)
请参阅 If 语句中的“节指令” - Laravel 文档
您只需检查该部分是否存在:
if (isset($__env->getSections()['title'])) {
@yield('title');
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以更进一步将这一小段代码打包到Blade扩展中:http://laravel.com/docs/templates#extending-blade
| 归档时间: |
|
| 查看次数: |
22411 次 |
| 最近记录: |