下面由Laravel框架教程欄目給大家介紹5 個(gè)非常有用的 Blade 指令,希望對(duì)需要的朋友有所幫助!
接下來(lái)我將帶大家認(rèn)識(shí)下五個(gè) Laravel Blade 指令,這些指令將讓你在解決特定問(wèn)題時(shí)如虎添翼。如果你是剛接觸 Laravel 的用戶,這些小技巧能帶你認(rèn)識(shí)到 Laravel Blade 模板引擎的便捷與高效。
廢話少說(shuō),讓我們開(kāi)始吧。
1. 檢測(cè)用戶是否認(rèn)證
你可以通過(guò)驗(yàn)證用戶是否為空來(lái)檢測(cè)其是否認(rèn)證:
@if(auth()->user()) // 用戶已認(rèn)證 @endif
然而,Laravel 自帶的 Blade 命令可以更簡(jiǎn)潔地實(shí)現(xiàn)相同的功能:
@auth // 用戶已認(rèn)證 @endauth
2. 檢測(cè)用戶是否為訪客
與認(rèn)證相反,我們可以用 auth
輔助函數(shù)的 guest()
方法來(lái)檢測(cè)用戶是否為訪客:
@if(auth()->guest()) // 用戶未認(rèn)證 @endif
不過(guò) Laravel 也為此提供了 @guest
命令:
@guest // 用戶未認(rèn)證 @endguest
我們也可以使用 else
語(yǔ)句來(lái)組合這兩個(gè)命令:
@guest // 用戶未認(rèn)證 @else // 用戶已認(rèn)證 @endguest
3. 如果第一個(gè)視圖存在則引入,否則引入第二個(gè)
構(gòu)建多主題站點(diǎn)可能會(huì)有一個(gè)文件如果存在就引入,否則就引入另一個(gè)的需要,你可以簡(jiǎn)單地使用條件判斷來(lái)實(shí)現(xiàn):
@if(view()->exists('first-view-name')) @include('first-view-name') @else @include('second-view-name') @endif
不過(guò)還是有一個(gè)更簡(jiǎn)潔直觀的命令來(lái)做這件事:
@includeFirst(['first-view-name', 'second-view-name']);
4. 根據(jù)條件引入視圖
當(dāng)你只想在一定邏輯的基礎(chǔ)上(如:一個(gè)已通過(guò)認(rèn)證的用戶)添加一些內(nèi)容的時(shí)候,根據(jù)條件引入視圖就非常有用了。
你可以使用 @if
條件來(lái)這樣寫(xiě):
@if($post->hasComments()) @include('posts.comments') @endif
我們可以只用一行命令 @includeWhen
來(lái)做到:
@includeWhen($post->hasComments(), 'posts.comments');
5. 引入一個(gè)存在的視圖
如果你有自定義主題系統(tǒng)或者你需要?jiǎng)討B(tài)地創(chuàng)建 Blade 視圖,那么檢查文件是否存在就是必須要做的。
可以在輔助函數(shù) view()
上調(diào)用 exists
方法:
@if(view()->exists('view-name')) @include('view-name') @endif
也可以使用 Blade 命令 includeIf
來(lái)處理:
@includeIf('view-name')
你可以通過(guò) Blade 官方文檔 了解