问题描述
我有多个具有公共@section的视图,这些视图将显示在布局文件中。而且我必须限制@yield返回的字符数。
// layout.blade.PHP
...
<Meta property="og:title" content="@yield('og_title','Default Value')" />
...
// sample.blade.PHP
...
@section('og_title',$page->og_title)
...
尽管该示例非常简单易懂,但每个og_title @section都有自己的后处理功能(如果...否则...)
现在,我正在做的是向每个og_title @section添加substr并将其重复到所有视图。问题是,当字符限制更改(例如60到75)时,我还必须将其更改为每个视图。
// sample.blade.PHP
...
@section('og_title',substr($page->Meta_title,60))
...
是否有一种方法来限制@yield返回的字符数? 类似于:
// layout.blade.PHP
...
<Meta property="og:title" content="@yield('og_title','Default Value',$limit??)" />
...
// layout.blade.PHP
...
<Meta property="og:title" content="{{ substr(@yield('og_title','Default Value'),60) }}" />
...
解决方法
与Google进行了一个小时的小冲突之后,我发现了一个有点“棘手”的解决方案,可以使用基础函数产生收益,然后对其应用substr
// layout.blade.php
...
<meta property="og:title" content="{{ substr(e($__env->yieldContent('title','Default Value')),60) }}" />
...