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 使用這種技術推出了一些非常酷的指令:
但現在在 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 上所有跟新功能相關的視訊。
今天的 Laravel 新聞播報就到這裡 :tada: 謝謝捧場~ 點選訂閱 Laravel 資訊 或者使用這個 外掛 可以讓你第一時間檢視新內容呢!