Laravel Blade限制@yield结果的字符

Laravel Blade limit the character of @yield result

我有多个视图具有将显示在布局文件中的公共 @section。而且我必须限制@yield returns.

的字符数
// 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 都有自己的 post 处理(if...else...)

现在,我正在做的是将 substr 添加到每个 og_title @section 并重复它到所有视图。问题是,当字符限制发生变化时(例如 60 到 75),我也必须将其更改为每个视图。

// sample.blade.php
...
@section('og_title', substr($page->meta_title, 0, 60))
...

有没有办法限制@yield returns的字符数? 类似于:

// layout.blade.php
...
<meta property="og:title" content="@yield('og_title', 'Default Value', $limit??)" />
...

我也尝试将 substr 添加到 @yeild 但它 returns 一个错误:

// layout.blade.php
...
<meta property="og:title" content="{{ substr(@yield('og_title', 'Default Value'), 0, 60) }}" />
...

在与 google 进行了一个小时的小规模冲突后,我发现了一个有点“hacky”的解决方案,使用 yield 的底层函数然后对其应用 substr

// layout.blade.php
...
<meta property="og:title" content="{{ substr(e($__env->yieldContent('title', 'Default Value')), 0, 60) }}" />
...