Laravel如何使用Blade模板引擎?(完整语法和示例)

发布时间 - 2025-12-18 00:00:00    点击率:
Blade 是 Laravel 自带的轻量级模板引擎,编译为原生 PHP 缓存执行,性能优异;支持双大括号输出与转义、@指令控制结构、模板继承、组件插槽及常用快捷指令。

Blade 是 Laravel 自带的轻量级、功能强大的模板引擎,它允许你在视图中安全地嵌入 PHP 逻辑,同时保持语法简洁、可读性强。它不是直接编译成 PHP,而是编译成原生 PHP 代码缓存起来,因此性能几乎与原生 PHP 相当。

基础语法:输出与转义

Blade 使用双大括号 {{ }} 输出变量内容。默认会对 HTML 进行自动转义,防止 XSS 攻击:

{{ $name }} → 输出转义后的字符串(如 会变成 zuojiankuohaophpcnscriptyoujiankuohaophpcn
{!! $html !!} → 原样输出(不转义),仅用于你完全信任的内容,比如富文本编辑器生成的 HTML。

控制结构:if、foreach、for、while 等

Blade 提供了简洁的指令语法替代原生 PHP 控制结构,全部以 @ 开头:

  • @if($user->is_active)@endif
  • @unless($user->banned)@endunless(等价于 @if(!...)
  • @for($i = 0; $i … @endfor
  • @foreach($posts as $post)@endforeach(支持 $loop 变量,如 $loop->first$loop->iteration
  • @forelse($posts as $post)@empty 没有数据时显示 … @endforelse

模板继承与布局复用

Blade 的核心优势之一是模板继承,通过 @extends@section 实现“一处定义,多处填充”:

resources/views/layouts/app.blade.php 中定义主布局:


@yield('title', '默认标题')

    
    
@yield('content')
© {{ date('Y') }}

在子视图 resources/views/home.blade.php 中复用:

@extends('layouts.app')

@section('title', '首页')

@section('content')
    

欢迎来到首页

当前用户:{{ Auth::user()?->name ?? '游客' }}

@endsection

组件与插槽:封装可复用 UI

从 Laravel 7+ 开始,推荐使用类组件或匿名组件代替传统 @include。例如创建一个按钮组件:

运行命令:php artisan make:component Alert,生成 app/View/Components/Alert.phpresources/views/components/alert.blade.php

在组件视图中使用插槽({{ $slot }})接收内容:

    {{ $slot }}

在页面中使用:


    操作成功!

也支持具名插槽:标题正文内容

其他常用指令和技巧

  • @include('partials.nav'):引入局部视图(支持传参:@include('view.name', ['key' => 'value'])
  • @stack('scripts') + @push('scripts'):在布局中预留 JS/CSS 插入点,子视图按需注入
  • @auth / @guest:快捷判断是否登录
  • @can('update', $post):基于策略的权限检查(配合 Gate 或 Policies)
  • @json($data):安全输出 JSON 字符串(自动转义并加引号,常用于前端初始化数据)

基本上就这些。Blade 不复杂但容易忽略细节,比如转义规则、$loop 变量、组件插槽机制,掌握它们能让模板更健壮、协作更清晰。


# css  # php  # laravel  # html  # js  # 前端  # json  # app  # ai  # gate  # xss  # if  # for  # while  # foreach  # 封装  # include  # 字符串  # 继承 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  详解Huffman编码算法之Java实现  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  打造顶配客厅影院,这份100寸电视推荐名单请查收  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在宝塔面板中创建新站点?  中山网站推广排名,中山信息港登录入口?  java获取注册ip实例  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何用花生壳三步快速搭建专属网站?  Laravel如何实现本地化和多语言支持?(i18n教程)  网站优化排名时,需要考虑哪些问题呢?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  米侠浏览器网页背景异常怎么办 米侠显示修复  如何快速完成中国万网建站详细流程?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  nginx修改上传文件大小限制的方法  如何在阿里云香港服务器快速搭建网站?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel怎么实现验证码(Captcha)功能  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  深圳网站制作培训,深圳哪些招聘网站比较好?  浅析上传头像示例及其注意事项  网站制作免费,什么网站能看正片电影?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  教你用AI将一段旋律扩展成一首完整的曲子  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何快速辨别茅台真假?关键步骤解析  Python文件异常处理策略_健壮性说明【指导】  如何在云指建站中生成FTP站点?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何登录建站主机?访问步骤全解析  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何在万网利用已有域名快速建站?  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何用PHP工具快速搭建高效网站?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程