Comment passer une fonction personnalisée à un modèle de lame Laravel?

j'ai une fonction personnalisée et je veux la passer dans un modèle de lame. Voici la fonction:

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;
}

Et l'usage est comme ceci:

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

est-il possible de passer une fonction personnalisée au modèle de lame? Remercier.

9
demandé sur sorxrob 2015-09-07 05:13:57

1 réponses

Vous n'avez pas à pass n'importe quoi à blade. Si vous définissez votre fonction, vous pouvez l'utiliser à partir de la lame.


  1. Créer un nouveau app/helpers.php fichier.
  2. Ajouter trim_characters fonction.
  3. ajouter ce fichier à votre composer.json le fichier.
  4. Exécuter composer dump-autoload.

maintenant, utilisez la fonction directement dans blade:

{{ trim_characters($string) }}
24
répondu Joseph Silber 2017-05-23 10:31:34