分享5個非常有用的Laravel Blade指令
簡介
Blade是Laravel提供的一個非常簡單、強(qiáng)大的模板引擎,不同于其他流行的PHP模板引擎,Blade在視圖中并不約束你使用PHP原生代碼。所有的Blade視圖都會被編譯成原生PHP代碼并緩存起來直到被修改,這意味著對應(yīng)用的性能而言Blade基本上是零開銷。Blade視圖文件使用.blade.php文件擴(kuò)展并存放在resources/views目錄下。
接下來我將帶大家認(rèn)識下五個 Laravel Blade 指令,這些指令將讓你在解決特定問題時如虎添翼。如果你是剛接觸 Laravel 的用戶,這些小技巧能帶你認(rèn)識到 Laravel Blade 模板引擎的便捷與高效。
廢話少說,讓我們開始吧。
1. 檢測用戶是否認(rèn)證
你可以通過驗證用戶是否為空來檢測其是否認(rèn)證:
@if(auth()->user()) // 用戶已認(rèn)證 @endif
然而,Laravel 自帶的 Blade 命令可以更簡潔地實現(xiàn)相同的功能:
@auth // 用戶已認(rèn)證 @endauth
2. 檢測用戶是否為訪客
與認(rèn)證相反,我們可以用 auth 輔助函數(shù)的 guest() 方法來檢測用戶是否為訪客:
@if(auth()->guest()) // 用戶未認(rèn)證 @endif
不過 Laravel 也為此提供了 @guest 命令:
@guest // 用戶未認(rèn)證 @endguest
我們也可以使用 else 語句來組合這兩個命令:
@guest // 用戶未認(rèn)證 @else // 用戶已認(rèn)證 @endguest
3. 如果第一個視圖存在則引入,否則引入第二個
構(gòu)建多主題站點(diǎn)可能會有一個文件如果存在就引入,否則就引入另一個的需要,你可以簡單地使用條件判斷來實現(xiàn):
@if(view()->exists('first-view-name')) @include('first-view-name') @else @include('second-view-name') @endif
不過還是有一個更簡潔直觀的命令來做這件事:
@includeFirst(['first-view-name', 'second-view-name']);
4. 根據(jù)條件引入視圖
當(dāng)你只想在一定邏輯的基礎(chǔ)上(如:一個已通過認(rèn)證的用戶)添加一些內(nèi)容的時候,根據(jù)條件引入視圖就非常有用了。
你可以使用 @if 條件來這樣寫:
@if($post->hasComments()) @include('posts.comments') @endif
我們可以只用一行命令 @includeWhen 來做到:
@includeWhen($post->hasComments(), 'posts.comments');
5. 引入一個存在的視圖
如果你有自定義主題系統(tǒng)或者你需要動態(tài)地創(chuàng)建 Blade 視圖,那么檢查文件是否存在就是必須要做的。
可以在輔助函數(shù) view() 上調(diào)用 exists 方法:
@if(view()->exists('view-name')) @include('view-name') @endif
也可以使用 Blade 命令 includeIf 來處理:
@includeIf('view-name')
你可以通過 Blade 官方文檔 了解更多實用的技巧來優(yōu)化你 Laravel 項目里的前端模板。
重構(gòu)快樂!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- laravel5.1框架基礎(chǔ)之Blade模板繼承簡單使用方法分析
- Laravel 5框架學(xué)習(xí)之Blade 簡介
- laravel 5 實現(xiàn)模板主題功能(續(xù))
- laravel 5 實現(xiàn)模板主題功能
- Laravel框架基礎(chǔ)語法與知識點(diǎn)整理【模板變量、輸出、include引入子視圖等】
- Laravel框架Blade模板簡介及模板繼承用法分析
- Laravel實現(xiàn)通過blade模板引擎渲染視圖
- PHP的Laravel框架中使用AdminLTE模板來編寫網(wǎng)站后臺界面
- Laravel框架中Blade模板的用法示例
- Laravel中的Blade模板引擎示例詳解
- Laravel框架之blade模板新手入門教程及小技巧
- Laravel 5.1 框架Blade模板引擎用法實例分析
相關(guān)文章
PHP面向?qū)ο笾I(lǐng)域模型+數(shù)據(jù)映射器實例(分析)
下面小編就為大家?guī)硪黄狿HP面向?qū)ο笾I(lǐng)域模型+數(shù)據(jù)映射器實例(分析)。小編覺得挺不錯的。現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06Yii框架在頁面輸出執(zhí)行sql語句以方便調(diào)試的實現(xiàn)方法
這篇文章主要介紹了Yii框架在頁面輸出執(zhí)行sql語句以方便調(diào)試的實現(xiàn)方法,涉及yiidebugtb的使用,是比較實用的技巧,需要的朋友可以參考下2014-12-12PHP的openssl加密擴(kuò)展使用小結(jié)(推薦)
下面小編就為大家?guī)硪黄狿HP的openssl加密擴(kuò)展使用小結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07基于curl數(shù)據(jù)采集之單頁面并行采集函數(shù)get_htmls的使用
用第一篇的get_html()實現(xiàn)簡單的數(shù)據(jù)采集,由于是一個一個執(zhí)行才采集數(shù)據(jù)的傳輸時間就會是所有頁面下載的總時長,一個頁面假設(shè)1秒,那么10個頁面就是10秒了。所幸curl還提供了并行處理的功能2013-04-04PHP中的empty、isset、isnull的區(qū)別與使用實例
今天小編就為大家分享一篇關(guān)于PHP中的empty、isset、isnull的區(qū)別與使用實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03thinkphp5框架調(diào)用其它控制器方法 實現(xiàn)自定義跳轉(zhuǎn)界面功能示例
這篇文章主要介紹了thinkphp5框架調(diào)用其它控制器方法 實現(xiàn)自定義跳轉(zhuǎn)界面功能,結(jié)合實例形式分析了thinkPHP5控制器調(diào)用、登陸判斷與界面跳轉(zhuǎn)相關(guān)操作技巧,需要的朋友可以參考下2019-07-07