web-dev-qa-db-ja.com

カスタム関数を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;
}

そして、使い方は次のとおりです:

$string = "A VERY VERY LONG TEXT";
trim_characters( $string );

カスタム関数をブレードテンプレートに渡すことはできますか?ありがとうございました。

20
wobsoriano

ブレードに何もpassする必要はありません。関数を定義すると、ブレードから使用できます。


  1. 新しいapp/helpers.phpファイルを作成します。
  2. trim_characters関数を追加します。
  3. そのファイルをcomposer.jsonファイルに追加
  4. composer dump-autoloadを実行します。

次に、ブレードで関数を直接使用します。

{{ trim_characters($string) }}
36
Joseph Silber