首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

12.Laravel Blade模板引擎语法规则

  • 25-04-17 17:21
  • 2841
  • 8068
juejin.cn

Laravel Blade 是一种简洁、强大的模板引擎,使用它有一些特定的规则和约定,以下从不同方面为你介绍:

1. 基本语法规则

输出表达式

  • 双花括号语法:使用 {{ }} 来输出 PHP 变量或表达式的值,输出内容会自动进行 HTML 实体转义,防止 XSS 攻击。

html
代码解读
复制代码
{{ $name }} {{ 1 + 2 }}
  • 三花括号语法:使用 {!! !!} 输出内容时不会进行 HTML 实体转义,可直接输出 HTML 代码,但要谨慎使用,防止安全问题。

html
代码解读
复制代码
{!! $htmlContent !!}

注释

使用 {{-- --}} 进行注释,这种注释不会在最终生成的 HTML 中显示。

html
代码解读
复制代码
{{-- 这是一个Blade注释 --}}

2. 控制结构规则

条件语句

  • @if、@elseif、@else 和 @endif:用于实现条件判断。

html
代码解读
复制代码
@if ($age < 18) 你是未成年人。 @elseif ($age >= 18 && $age < 60) 你是成年人。 @else 你是老年人。 @endif
  • @unless:与 @if 相反,条件为假时执行代码块。

html
代码解读
复制代码
@unless ($isAdmin) 你没有管理员权限。 @endunless

循环语句

  • @for:用于传统的 for 循环。

html
代码解读
复制代码
@for ($i = 0; $i < 5; $i++) <p>这是第 {{ $i }} 次循环p> @endfor
  • @foreach:用于遍历数组或集合。

html
代码解读
复制代码
@foreach ($users as $user) <p>{{ $user->name }}p> @endforeach
  • @while:用于 while 循环。

html
代码解读
复制代码
@while ($count < 10) <p>当前计数: {{ $count }}p> @endwhile

3. 布局和组件规则

布局

  • @extends:用于继承一个布局模板。

html
代码解读
复制代码
@extends('layouts.app')
  • @section 和 @yield:@section 用于在子视图中定义内容区域,@yield 用于在布局模板中预留内容区域。

html
代码解读
复制代码
{{-- 布局模板 layouts/app.blade.php --}} html> <html lang="en"> <head> <title>@yield('title', '默认标题')title> head> <body> @yield('content') body> html> {{-- 子视图 --}} @extends('layouts.app') @section('title', '自定义标题') @section('content') <h1>欢迎来到页面h1> @endsection

组件

  • 组件定义:在 resources/views/components 目录下创建组件视图文件,如 button.blade.php。

  • 组件使用:使用  语法引入组件,并可以传递属性。

html
代码解读
复制代码
<x-button type="primary">点击我x-button>

4. 表单和路由规则

表单

  • @csrf:在表单中使用 @csrf 指令生成 CSRF 令牌,防止跨站请求伪造。

html
代码解读
复制代码
<form method="POST" action="{{ route('submit.form') }}"> @csrf <input type="text" name="name"> <button type="submit">提交button> form>

路由

  • route 函数:在 Blade 模板中使用 route 函数生成路由链接。

html
代码解读
复制代码
<a href="{{ route('user.profile', ['id' => $user->id]) }}">查看用户资料a>

5. 自定义指令规则

可以使用 Blade::directive 方法自定义指令。自定义指令通常用于封装一些常用的逻辑。

php
代码解读
复制代码
// 在服务提供者的 boot 方法中定义自定义指令 use Illuminate\Support\Facades\Blade; Blade::directive('datetime', function ($expression) { return "$expression)->format('Y-m-d H:i:s'); ?>"; });

在 Blade 模板中使用自定义指令:

html
代码解读
复制代码
@datetime($createdAt)

6. 继承和优先级规则

  • 继承顺序:子视图继承布局模板后,子视图中的内容会覆盖布局模板中对应 @yield 区域的默认内容。
  • 指令优先级:Blade 指令会按照代码中的顺序依次执行,在嵌套使用指令时,要注意指令的执行顺序和作用域。
注:本文转载自juejin.cn的南雨北斗的文章"https://juejin.cn/post/7493326922518036530"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

103
后端
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top