Blade是Laravel的模板引擎,使用@extends和@section实现模板继承,通过{{}}输出变量,支持@if、@foreach等指令,可高效构建清晰的视图结构。

Blade 是 Laravel 自带的轻量级模板引擎,它允许你使用简洁、优雅的语法编写视图,并支持模板继承、组件、条件语句和循环等特性。Blade 文件的扩展名为 .blade.php,会被 Laravel 编译成原生 PHP 代码并缓存,因此不会影响性能。
创建与渲染 Blade 视图
在 resources/views 目录下创建 Blade 文件,例如:home.blade.php。
内容示例:
<!DOCTYPE html><br><html><br> <head><br> <title>首页</title><br> </head><br> <body><br> <h1>欢迎来到 {{ $name }} 的网站</h1><br> </body><br></html>
在控制器中使用 view() 函数渲染该视图:
public function index()<br>{<br> return view('home', ['name' => 'Laravel']);<br>}
模板继承:使用 @extends 和 @section
Blade 的核心优势之一是模板继承,可以定义一个布局文件(layout),然后在其他页面中继承并填充特定区域。
步骤如下:
- 在 resources/views/layouts 下创建主布局文件,如 app.blade.php
- 使用 @section 定义可替换的内容区块
- 子页面使用 @extends 继承布局,并用 @section 填充内容
示例:主布局 app.blade.php
<!DOCTYPE html><br><html><br> <head><br> <title>@yield('title', '默认标题')</title><br> </head><br> <body><br> <header><br> <h1>我的网站</h1><br> <nav><a href="/">首页</a> | <a href="/about">关于</a></nav><br> </header><br><br> <main><br> @yield('content')<br> </main><br><br> <footer><br> @section('footer')<br> <p>版权所有 © 2025</p><br> @show<br> </footer><br> </body><br></html>
子页面继承布局,如 home.blade.php:
@extends('layouts.app')<br><br>@section('title', '主页')<br><br>@section('content')<br> <h2>这是首页内容</h2><br> <p>欢迎访问!</p><br>@endsection<br><br>@section('footer')<br> @parent<br> <p>本页由 Blade 驱动</p><br>@endsection
说明:
- @yield('title') 输出命名区块内容,可设置默认值
- @section('footer')...@endsection 定义可覆盖或追加的内容
- @parent 表示保留父模板中的内容并追加新内容
常用 Blade 指令
Blade 提供了许多便捷指令来简化视图逻辑:
- @if / @else / @endif:条件判断
- @foreach / @endforeach:循环输出数据
- {{ $variable }}:显示变量(自动转义)
- {!! $html !!}:输出原始 HTML(不转义,注意 XSS 风险)
- @include('view.name'):包含其他视图
- @auth / @guest:根据用户登录状态显示内容
示例:使用循环和条件
@if($posts)<br> <ul><br> @foreach($posts as $post)<br> <li>{{ $post->title }}</li><br> @endforeach<br> </ul><br>@else<br> <p>暂无文章</p><br>@endif
基本上就这些。掌握 Blade 的模板继承和常用语法后,就能高效构建结构清晰、易于维护的前端页面。










