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

來源:互聯網
上載者:User
這篇文章主要給大家分享介紹了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 項目裡的前端模板。

重構快樂!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.