Laravel開發:如何使用Laravel Blade模板佈局?
Laravel是一款基於PHP的優秀開發框架,它具有簡單易學、高效、安全等優點,深受WEB開發者的喜愛。其中,Laravel Blade模板佈局是Laravel框架中一個十分實用的功能,本文將帶您透過實際的案例演示如何使用Laravel Blade模板佈局。
什麼是Blade模板佈局?
Blade模板引擎是Laravel框架的預設視圖引擎,相比PHP原生語法的模板引擎,Blade支援更簡潔優雅的語法,可以和Laravel框架更好地配合使用。而Laravel Blade模板佈局則是指將網頁分為頭部、尾部、側邊欄,區塊內容等模組化組合起來,以便於實現分離開發,提高開發效率。
- 建立佈局主模板
在Laravel中,我們可以使用artisan指令來產生佈局主模板,具體步驟如下:
php artisan make:layout master
執行指令後,在專案resources/views/layouts/目錄下會產生一個名為master.blade.php的主範本檔案。打開該文件,可以看到其中的程式碼內容如下:
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>@yield('title')</title> </head> <body> <header> @yield('header') </header> <nav> @yield('nav') </nav> <main> @yield('content') </main> <footer> @yield('footer') </footer> </body> </html>
我們可以看到,模板文件中包含了頭部、尾部、導航欄、主體等不同的區塊,使用Blade模板語法的@yield()函數來佔位,這裡的@yield()函數定義了一個模板區塊,以後我們將在其他視圖文件中使用@section()函數填充這些模板區塊。
- 取代被繼承的子視圖
對於任何需要使用佈局的視圖文件,都可以透過繼承主模板來進行佈局。開啟視圖文件,新增以下程式碼:
@extends('layouts.master')
這裡的@extends('layouts.master')表示目前檢視文件繼承自主模板檔案layouts.master。接下來,便可以透過@yield()函數所定義的模板區塊名稱來填充這些模板區塊,例如,可以在視圖文件中添加如下程式碼:
@section('title', '页面标题') @section('header') <h1>头部内容</h1> @endsection @section('nav') <ul> <li><a href="#">导航栏1</a></li> <li><a href="#">导航栏2</a></li> <li><a href="#">导航栏3</a></li> </ul> @endsection @section('content') <p>主体内容</p> @endsection @section('footer') <p>版权信息</p> @endsection
在以上程式碼中,@section ()函數用於填充主模板中的模板區塊,例如,@section('title', '頁面標題')用於填充主模板中的
- 使用Laravel View靜態方法
除了@yield()函數和@section()函數外,Laravel還提供了View靜態方法,建議使用這種方式,具體實作步驟如下:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesView; class HomeController extends Controller { public function index() { $data = [ 'title' => '页面标题', 'header' => '<h1>头部内容</h1>', 'nav' => '<ul> <li><a href="#">导航栏1</a></li> <li><a href="#">导航栏2</a></li> <li><a href="#">导航栏3</a></li> </ul>', 'content' => '<p>主体内容</p>', 'footer' => '<p>版权信息</p>' ]; return View::make('home.index', $data); } }
以上程式碼中,我們使用了View::make來產生視圖,並且傳入了一個陣列實例$data作為視圖的變數上下文。在此數組中,我們定義了$title、$header、$nav、$content、$footer等5個變量,用於分別填入主模板中對應的模板區塊。
- 使用Blade模板中的控制結構
在Blade模板中,除了@yield()、@section()填充模板區塊,我們還可以使用控制結構,如@if、@foreach、@for等,來實現特定的邏輯,具體實現如下:
@section('content') <div> @foreach ($posts as $post) <h2>{{ $post->title }}</h2> <p>{{ substr($post->content, 0, 100) }}</p> @endforeach </div> @endsection
在該程式碼中,我們使用@foreach循環語句來遍歷數組$posts,並藉助{ { $post->title }}和{{ substr($post->content, 0, 100) }}來輸出文章標題和簡短的內容。
總結
以上便是如何使用Laravel Blade模板佈局的實際案例演示,Laravel Blade模板佈局的使用,可以大大提高WEB應用程式的開發效率,同時也使業務邏輯與視圖的分離更加明顯。當然,除此之外,Laravel框架還有很多強大的功能值得探索。
以上是Laravel開發:如何使用Laravel Blade模板佈局?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel - Artisan 指令 - Laravel 5.7 提供了處理和測試新指令的新方法。它包括測試 artisan 命令的新功能,下面提到了演示?

Laravel - Artisan Console - Laravel 框架提供了三種主要的命令列互動工具,分別是:Artisan、Ticker 和 REPL。本章詳細介紹了 Artisan。

Laravel - 分頁自訂 - Laravel 包含分頁功能,可協助使用者或開發人員包含分頁功能。 Laravel 分頁器與查詢產生器和 Eloquent ORM 整合。自動分頁方法

Laravel郵件發送失敗時的退信代碼獲取方法在使用Laravel開發應用時,經常會遇到需要發送驗證碼的情況。而在實�...

Laravel計劃任務運行無響應排查在使用Laravel的計劃任務調度時,不少開發者會遇到這樣的問題:schedule:run...

在dcatadmin(laravel-admin)中如何實現自定義點擊添加數據的表格功能在使用dcat...

Laravel - 轉儲伺服器 - Laravel 轉儲伺服器隨 Laravel 5.7 版本提供。先前的版本不包括任何轉儲伺服器。轉儲伺服器將成為 laravel/laravel Composer 檔案中的開發依賴項。
