Laravel Blade 限制 @yield 结果的字符
Posted
技术标签:
【中文标题】Laravel Blade 限制 @yield 结果的字符【英文标题】:Laravel Blade limit the character of @yield result 【发布时间】:2021-01-23 00:52:39 【问题描述】:我有多个视图,它们有一个共同的@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 都有自己的后期处理(if...else...)
现在,我正在做的是将 substr 添加到每个 og_title @section 并将其重复到所有视图。问题是,当字符限制发生变化时(例如 60 到 75),我还必须将其更改为每个视图。
// sample.blade.php
...
@section('og_title', substr($page->meta_title, 0, 60))
...
有没有办法限制@yield 返回的字符数? 类似于:
// layout.blade.php
...
<meta property="og:title" content="@yield('og_title', 'Default Value', $limit??)" />
...
我也尝试将 substr 添加到 @yeild 但它返回错误:
// layout.blade.php
...
<meta property="og:title" content=" substr(@yield('og_title', 'Default Value'), 0, 60) " />
...
【问题讨论】:
【参考方案1】:在与 google 打了一个小时后,我找到了一个有点“hacky”的解决方案,使用底层函数来 yield 然后将 substr 应用到它
// layout.blade.php
...
<meta property="og:title" content=" substr(e($__env->yieldContent('title', 'Default Value')), 0, 60) " />
...
【讨论】:
以上是关于Laravel Blade 限制 @yield 结果的字符的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - Blade @yield 在向用户提供 html 时忽略标签
markdown Para definir布局de la forma tradicional con Blade en Laravel usamos la directiva @yield de es