2015-09-07 26 views
6

私はカスタム関数を持っていて、それをブレードテンプレートに渡したいと思います。ここでは関数は次のとおりです。カスタム関数を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); 

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

答えて

18

には、ブレードを渡す必要はありません。関数を定義すると、その関数をブレードから使用することができます。


  1. 新しいapp/helpers.phpファイルを作成します。
  2. trim_characters機能を追加してください。
  3. Add that file to your composer.json file
  4. 実行composer dump-autoload

今だけのブレードに直接関数を使用する:

{{ trim_characters($string) }} 
+0

それは動作します。ありがとうございました。 – FewFlyBy

+1

私のためには機能しません。私は '未定義の関数への呼び出し'を取得し、関数はページの上部にプレーンテキストで表示されます! – MattClimbs

+0

私にとって完璧に動作します。ありがとう。 – KickingLettuce