首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自定义函数传递给Laravel Blade模板?

问如何将自定义函数传递给Laravel Blade模板?
EN

Stack Overflow用户
提问于 2015-09-07 10:13:57
回答 2查看 30.1K关注 0票数 26

我有一个自定义函数,我想在刀片模板中传递它。下面是函数:

代码语言:javascript
复制
function trim_characters( $text, $length = 45, $append = '…' ) {

    $length = (int) $length;
    $text = trim( strip_tags( $text ) );

    if ( strlen( $text ) > $length ) {
        $text = substr( $text, 0, $length + 1 );
        $words = preg_split( "/[\s]| /", $text, -1, PREG_SPLIT_NO_EMPTY );
        preg_match( "/[\s]| /", $text, $lastchar, 0, $length );
        if ( empty( $lastchar ) )
            array_pop( $words );

        $text = implode( ' ', $words ) . $append;
    }

    return $text;
}

用法是这样的:

代码语言:javascript
复制
$string = "A VERY VERY LONG TEXT";
trim_characters( $string );

是否可以将自定义函数传递给刀片模板?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-07 10:14:41

您不必将任何内容传递给blade。如果你定义了你的函数,你可以在刀片中使用它。

  1. 创建一个新的app/helpers.php文件。
  2. 在it.
  3. Add that file to your composer.json file.
  4. Run composer dump-autoload.

中添加您的函数

现在只需在刀片中直接使用该函数:

代码语言:javascript
复制
{{ trim_characters($string) }}
票数 50
EN

Stack Overflow用户

发布于 2021-12-27 02:58:00

另一种方法是注入服务。请参阅https://laravel.com/docs/6.x/blade#service-injection上的文档

在类中定义函数,然后将其注入到Blade中

代码语言:javascript
复制
class Foo {
    trim_characters($string) {....}
}

然后在您的刀片文件中

代码语言:javascript
复制
@inject('foo', 'Foo')

<div>{{ $foo->trim_characters($string) }}</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32430255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档