Bladeテンプレートを拡張する


extension

 悩み事

Bladeテンプレートを拡張してfunctionなどを追加したい

 解決方法

Blade::extend()メソッドを利用します

サンプルで、@breakを追加してみましょう
例に習って追加してみてください

\Blade::extend(function($value) {
    return preg_replace('/(\s*)@break(\s*)/', '$1<?php break; ?>$2', $value);
});

テンプレートでbreakを使う事ができる様になります

@foreach ($value_array as $value)
    @if ($value == 'end')
        @break;
    @endif
    {{$value}}<br>
@endforeach

'$value'が'end'の場合に停止します

 アドバイス

Bladeテンプレートの拡張はどこで実装しますか?

基本的には、ビューが描画される前であればどこでも実装出来ます
一番ベストな実装場所はサービスプロバイダーです
他にはapp/start/global.php、またはヘルパーファイル形式で実装する事もできます
ヘルパーファイルの作成

views コンパイルファイルを削除しましょう!

新しいfunction等を追加した場合、
かならずapp/storage/views内のファイルを削除しましょう!


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa