首頁  >  文章  >  後端開發  >  分享5個非常有用的Laravel Blade指令

分享5個非常有用的Laravel Blade指令

不言
不言原創
2018-05-31 16:14:192885瀏覽

這篇文章主要跟大家分享介紹了5個非常有用的Laravel Blade指令,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們一起來看一下吧

簡介

Blade是Laravel提供的一個非常簡單、強大的模板引擎,不同於其他流行的PHP模板引擎,Blade在視圖中並不約束你使用PHP原生程式碼。所有的Blade視圖都會被編譯成原生PHP程式碼並且快取起來直到被修改,這意味著對應用程式的效能而言Blade基本上是零開銷。 Blade視圖檔案使用.blade.php檔案擴充並存放在resources/views目錄下。

接下來我將帶大家認識下五個 Laravel Blade 指令,這些指令將讓你在解決特定問題時如虎添翼。如果你是剛接觸 Laravel 的用戶,這些小技巧能帶你去認識 Laravel Blade 模板引擎的便利與高效能。

廢話少說,讓我們開始吧。

1. 偵測使用者是否認證

你可以透過驗證使用者是否為空來偵測其是否認證:

@if(auth()->user())
 // 用户已认证
@endif

然而,Laravel 自帶的Blade 指令可以更簡潔地實現相同的功能:

@auth
 // 用户已认证
@endauth

#2. 偵測使用者是否為訪客

與認證相反,我們可以用auth 輔助函數的guest() 方法來偵測使用者是否為訪客:

@if(auth()->guest())
 // 用户未认证
@endif

不過Laravel 也為此提供了@guest 指令:

##

@guest
 // 用户未认证
@endguest

#我們也可以使用else 語句來組合這兩個命令:

@guest
 // 用户未认证
@else
 // 用户已认证
@endguest

#3. 如果第一個視圖存在則引入,否則引入第二個

建立多主題網站可能會有一個檔案如果存在就引入,否則就引入另一個的需要,你可以簡單地使用條件判斷來實作:

@if(view()->exists('first-view-name'))
 @include('first-view-name')
@else
 @include('second-view-name')
@endif

不過還是有一個更簡潔直覺的指令來做這件事:

##
@includeFirst(['first-view-name', 'second-view-name']);

4. 根據條件引入視圖
#當你只想在某一邏輯的基礎上(如:一個已通過認證的使用者)添加一些內容的時候,根據條件引入視圖就非常有用了。

你可以用@if 條件來這樣寫:

@if($post->hasComments())
 @include('posts.comments')
@endif

我們可以只用一行指令@includeWhen 來做:

@includeWhen($post->hasComments(), 'posts.comments');

5. 引入一個存在的視圖
如果你有自訂主題系統或你需要動態地建立Blade 視圖,那麼檢查檔案是否存在就是必須要做的。

可以在輔助函數view() 上呼叫exists 方法:

@if(view()->exists('view-name'))
 @include('view-name')
@endif

也可以使用Blade 指令includeIf 來處理:

@includeIf('view-name')

你可以透過Blade 官方文件了解更多實用的技巧來優化你Laravel 專案裡的前端模板。

重構快樂!

相關推薦:

Laravel框架使用Redis的方法

原始碼解析Laravel依賴注入步驟詳解

##

以上是分享5個非常有用的Laravel Blade指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn