Blade::if () 指令( Laravel 5.5 新功能早知道)

JokerLinly發表於2017-07-14

file
Laravel 5.5 的 Blade 模板引擎中新增新的指令來簡化檢視中自定義的 if 語句。

要在你的 AppServiceProvider::boot() 方法中,像這樣寫:

use Illuminate\Support\Facades\Blade;

Blade::if('adminer', function () {
    return auth()->check() && auth()->user()->isAdmin();
});

在上面這段程式碼中,新的 Blade::if() 可以方便地從模板中抽出重複的檢查,讓它們更易讀:

@adminer
    <a href="{{ route('super.secret') }}">Secret Page</a>
@else
    Welcome Guest. <a href="{{ route('login') }}">Login</a>
@endadminer

在以前的 Laravel 版本中,要達成這樣的效果,必須再寫一些程式碼。 例如,在 Laravel 5.4 中,David Hemphill 使用這種技術推出了一些非常酷的指令:

file

但現在在 Laravel 5.5 中更簡化了:

Blade::if('prod', function () {
    return app()->environment('production');
});

還可以傳遞引數使檢查更具動態性:

Blade::if('env', function ($env) {
    return app()->environment($env);
});

那麼在你的模板中會看起來像這樣:

@env('production')
  <script src="some-prod.js"></script>
@endenv

如果你想了解更多有關 Blade::if() 的使用,可以檢視 視訊 教程!Laravel 5.5 快出來了,你也可以一口氣檢視 Laracasts 上所有跟新功能相關的視訊。

參考連結:https://laravel-news.com/bladeif

今天的 Laravel 新聞播報就到這裡 :tada: 謝謝捧場~ 點選訂閱 Laravel 資訊 或者使用這個 外掛 可以讓你第一時間檢視新內容呢!

Stay Hungry, Stay Foolish.

相關文章