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


相关推荐: Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  php结合redis实现高并发下的抢购、秒杀功能的实例  Android Socket接口实现即时通讯实例代码  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  开心动漫网站制作软件下载,十分开心动画为何停播?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在万网ECS上快速搭建专属网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  免费视频制作网站,更新又快又好的免费电影网站?  在线教育网站制作平台,山西立德教育官网?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  iOS中将个别页面强制横屏其他页面竖屏  个人摄影网站制作流程,摄影爱好者都去什么网站?  晋江文学城电脑版官网 晋江文学城网页版直接进入  如何快速配置高效服务器建站软件?  php打包exe后无法访问网络共享_共享权限设置方法【教程】  常州企业网站制作公司,全国继续教育网怎么登录?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  PythonWeb开发入门教程_Flask快速构建Web应用  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  如何在万网主机上快速搭建网站?  JS弹性运动实现方法分析  Laravel怎么使用artisan命令缓存配置和视图  Laravel如何使用Gate和Policy进行授权?(权限控制)  如何撰写建站申请书?关键要点有哪些?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  微信小程序 五星评分(包括半颗星评分)实例代码  Android仿QQ列表左滑删除操作  网站制作壁纸教程视频,电脑壁纸网站?  如何在Tomcat中配置并部署网站项目?  网站建设保证美观性,需要考虑的几点问题!  音乐网站服务器如何优化API响应速度?  教你用AI将一段旋律扩展成一首完整的曲子  JavaScript数据类型有哪些_如何准确判断一个变量的类型  EditPlus中的正则表达式实战(6)  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel如何配置和使用缓存?(Redis代码示例)  网站制作软件免费下载安装,有哪些免费下载的软件网站?  制作旅游网站html,怎样注册旅游网站?  ,南京靠谱的征婚网站?  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  如何用腾讯建站主机快速创建免费网站?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?