【问题标题】:Laravel Blade limit the character of @yield resultLaravel Blade 限制 @yield 结果的字符
【发布时间】: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) }}" />
...

【问题讨论】:

    标签: php laravel laravel-blade yield substr


    【解决方案1】:

    在与 google 打了一个小时后,我找到了一个有点“hacky”的解决方案,使用底层函数来 yield 然后将 substr 应用到它

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 2016-01-28
      • 2015-10-19
      • 2021-07-06
      • 1970-01-01
      • 2017-05-16
      • 2014-12-24
      相关资源
      最近更新 更多