如何将自定义功能传递给Laravel Blade模板?

wob*_*ano 19 laravel laravel-blade

我有一个自定义功能,我想在刀片模板中传递它.这是功能:

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;
}
Run Code Online (Sandbox Code Playgroud)

用法是这样的:

$string = "A VERY VERY LONG TEXT";
trim_characters( $string );
Run Code Online (Sandbox Code Playgroud)

是否可以将自定义功能传递给刀片模板?谢谢.

Jos*_*ber 37

您不必任何东西传递给刀片.如果您定义了您的功能,则可以从刀片中使用它.


  1. 创建一个新app/helpers.php文件.
  2. 添加你的trim_characters功能.
  3. 将该文件添加到您的composer.json文件中.
  4. composer dump-autoload.

现在只需在刀片中直接使用该功能:

{{ trim_characters($string) }}
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用。我得到“调用未定义函数”,并且该函数以纯文本形式打印在页面顶部! (3认同)