Blade 模板引擎中常用的指令和标签

Blade 模板引擎中常用的指令和标签,以及作用和实际使用案例:

1. @extends

  • 作用:继承一个 Blade 模板。通常用于定义一个父布局文件,其他子视图继承这个布局。
  • 示例
<!-- resources/views/layouts/app.blade.php -->
<!DOCTYPE html>
<html>
<head><title>@yield('title')</title>
</head>
<body>@yield('content')
</body>
</html><!-- resources/views/home.blade.php -->
@extends('layouts.app')@section('title', 'Home Page')@section('content')<h1>Welcome to the home page!</h1>
@endsection

2. @section@yield

  • 作用@section 用于定义子视图中的内容,@yield 用于在父模板中定义可被子模板填充的内容区域。
  • 示例
<!-- resources/views/layouts/app.blade.php -->
<body>@yield('content')
</body><!-- resources/views/home.blade.php -->
@extends('layouts.app')@section('content')<p>This is the home page content.</p>
@endsection

3. @include

  • 作用:引入另一个视图文件。
  • 示例
<!-- resources/views/includes/nav.blade.php -->
<nav><ul><li>Home</li><li>About</li></ul>
</nav><!-- resources/views/home.blade.php -->
@extends('layouts.app')@section('content')@include('includes.nav')<p>Welcome to the home page!</p>
@endsection

4. @if, @elseif, @else, @endif

  • 作用:条件判断。
  • 示例
@if ($user->isAdmin())<p>Welcome, Admin!</p>
@elseif ($user->isMember())<p>Welcome, Member!</p>
@else<p>Welcome, Guest!</p>
@endif

5. @foreach, @for, @while, @forelse

  • 作用:循环结构,遍历数组或集合。@forelse 提供处理空数组的备用语法。
  • 示例
@foreach ($users as $user)<p>{{ $user->name }}</p>
@endforeach@forelse ($users as $user)<p>{{ $user->name }}</p>
@empty<p>No users found.</p>
@endforelse

6. {{ }}{!! !!}

  • 作用{{ }} 用于输出经过 HTML 实体转义的内容,{!! !!} 用于输出未经转义的 HTML。
  • 示例
<p>{{ $name }}</p> <!-- 安全输出,HTML 实体被转义 -->
<p>{!! $html !!}</p> <!-- 不转义,允许输出 HTML -->

7. @csrf

  • 作用:生成 CSRF 令牌,用于防止跨站请求伪造攻击。
  • 示例
<form action="/submit" method="POST">@csrf<input type="text" name="name"><button type="submit">Submit</button>
</form>

8. @auth@guest

  • 作用@auth 仅在用户已通过身份验证时显示内容,@guest 仅在用户未登录时显示内容。
  • 示例
@auth<p>Welcome back, {{ auth()->user()->name }}!</p>
@endauth@guest<p>Please <a href="/login">login</a>.</p>
@endguest

9. @push@stack

  • 作用@push 向特定栈中添加内容,@stack 输出栈中的内容,通常用于添加脚本或样式。
  • 示例
<!-- 在子视图中 -->
@push('scripts')<script src="/example.js"></script>
@endpush<!-- 在父模板中 -->
<body><div class="content">@yield('content')</div>@stack('scripts')
</body>

10. @component@slot

  • 作用@component 用于定义复用组件,@slot 用于组件中的插槽。
  • 示例
<!-- 定义组件 -->
<div class="alert alert-{{ $type }}">{{ $slot }}
</div><!-- 使用组件 -->
@component('components.alert', ['type' => 'success'])<strong>Success!</strong> Your action was successful.
@endcomponent

11. @includeIf, @includeWhen, @includeUnless

  • 作用:按条件引入视图。@includeIf 视图存在时才引入,@includeWhen 根据条件引入,@includeUnless 当条件不满足时引入。
  • 示例
@includeIf('includes.nav')@includeWhen($user->isAdmin(), 'includes.admin')@includeUnless($user->isGuest(), 'includes.member')

12. @php

  • 作用:在 Blade 模板中编写 PHP 代码块。
  • 示例
@php$message = 'Hello, World!';
@endphp<p>{{ $message }}</p>

13. @isset@empty

  • 作用@isset 检查变量是否存在,@empty 检查变量是否为空。
  • 示例
@isset($name)<p>{{ $name }}</p>
@endisset@empty($records)<p>No records found.</p>
@endempty

14. @verbatim

  • 作用:在 @verbatim 区块中的内容不会被 Blade 解析,常用于包含原生 Vue.js 或其他前端框架的模板语法。
  • 示例
@verbatim<div id="app">{{ message }}</div>
@endverbatim

15. @can@cannot

  • 作用@can 用于检查当前用户是否有权限执行某个操作,@cannot 检查用户是否没有权限。
  • 示例
@can('update', $post)<button>Edit Post</button>
@endcan@cannot('update', $post)<p>You do not have permission to edit this post.</p>
@endcannot

16. @method@error

  • 作用@method 用于在表单中伪造 HTTP 动词,@error 用于显示表单验证错误信息。
  • 示例
<form action="/post/1" method="POST">@csrf@method('PUT')<input type="text" name="title" value="{{ old('title') }}">@error('title')<p>{{ $message }}</p>@enderror<button type="submit">Update</button>
</form>

17. @env

  • 作用:检查当前环境。
  • 示例
@env('local')<p>You are in local environment.</p>
@endenv

18. @elseauth@elseguest

  • 作用@elseauth@auth 块中表示用户未通过身份验证时的分支,@elseguest@guest 块中表示用户已通过身份验证时的分支。
  • 示例
@auth<p>Welcome back, {{ auth()->user()->name }}!</p>
@elseauth<p>You are not logged in as an authenticated user.</p>
@endauth@guest<p>Welcome, Guest!</p>
@elseguest<p>Welcome, Authenticated User!</p>
@endguest

19. @switch, @case, @break, @default

  • 作用:实现类似 PHP 的 switch 语句。
  • 示例
@switch($role)@case('admin')<p>Welcome, Admin!</p>@break@case('editor')<p>Welcome, Editor!</p>@break@default<p>Welcome, User!</p>
@endswitch

20. @json

  • 作用:将 PHP 数组或对象转换为 JSON 格式,并自动安全输出。
  • 示例
<script>var user = @json($user);
</script>

21. @hasSection@show

  • 作用

检查某个 @section 是否存在,@show 表示立即输出指定 @section 并结束它的定义。

  • 示例
@hasSection('sidebar')<div class="sidebar">@yield('sidebar')</div>
@endif@section('sidebar')This is the sidebar content.
@show

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443437.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot统一日志框架

在项目开发中&#xff0c;日志十分的重要&#xff0c;不管是记录运行情况还是定位线上问题&#xff0c;都离不开对日志的分析。 1.日志框架的选择 市面上常见的日志框架有很多&#xff0c;它们可以被分为两类&#xff1a;日志门面&#xff08;日志抽象层&#xff09;和日志实…

【万字长文】Word2Vec计算详解(三)分层Softmax与负采样

【万字长文】Word2Vec计算详解&#xff08;三&#xff09;分层Softmax与负采样 写在前面 第三部分介绍Word2Vec模型的两种优化方案。 【万字长文】Word2Vec计算详解&#xff08;一&#xff09;CBOW模型 markdown行 9000 【万字长文】Word2Vec计算详解&#xff08;二&#xff0…

网站集群批量管理-Ansible(playbook)

1.剧本概述 1. playbook 文件,用于长久保存并且实现批量管理,维护,部署的文件. 类似于脚本存放命令和变量 2. 剧本yaml格式,yaml格式的文件:空格,冒号 2. 区别 ans-playbookans ad-hoc共同点批量管理,使用模块批量管理,使用模块区别重复调用不是很方便,不容易重复场景部署服务…

LeetCode讲解篇之377. 组合总和 Ⅳ

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 总和为target的元素组合个数 可以由 总和为target - nums[j]的元素组合个数 转换而来&#xff0c;其中j为nums所有元素的下标 而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的…

物联网:一种有能力重塑世界的技术

物联网&#xff08;IoT&#xff09;近年来对我们的日常生活产生了如此积极的影响&#xff0c;以至于即使是不懂技术的人也开始相信它所带来的便利以及敏锐的洞察力。 物联网是一场数字技术革命&#xff0c;其意义甚至比工业革命更为重大。物联网是仍处于起步阶段的第四次工业革…

【数据结构】栈和队列 + 经典算法题

目录 前言 一、栈 二、栈的实现 三、栈的循环遍历演示 四、栈的算法题 // 一、队列 二、队列的实现 三、使用演示 四、队列的算法题 总结 前言 本文完整实现了栈和队列的数据结构&#xff0c;以及栈和队列的一些经典算法题&#xff0c;让我们更加清楚了解这两种数据…

(Django)初步使用

前言 Django 是一个功能强大、架构良好、安全可靠的 Python Web 框架&#xff0c;适用于各种规模的项目开发。它的高效开发、数据库支持、安全性、良好的架构设计以及活跃的社区和丰富的文档&#xff0c;使得它成为众多开发者的首选框架。 目录 安装 应用场景 良好的架构设计…

关于AOT、JIT编译模式以及基于静态编译构建微服务应用

JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation) 。和 JIT 不同的是&#xff0c;这种编译模式会在程序被执行前就将其编译成机器码&#xff0c;属于静态编译&#xff08;C、 C&#xff0c;Rust&#xff0c;Go 等语言就是静态编译&#xff09;。AOT 避免了 JIT 预…

洛谷P5648

洛谷P5648 这题花了很长时间&#xff0c;是在线段树题单里找到的&#xff08; &#xff09;。有线段树做法&#xff0c;但是我感觉可能比倍增做法更难看懂。以后有空再看看吧。感觉线段树现在只会板子题&#xff0c;绿稍微难点可能就不会。 花了很久时间之后&#xff0c;就觉得…

如何让你的Mac右键菜单栏更加的丰富多样

Mac电脑的右键菜单栏不如Windows的丰富&#xff0c;虽然可以在系统设置一些常用功能&#xff0c;但是种类不够丰富&#xff0c;这对于一些用惯了Windows的人来说可以说是非常的不习惯&#xff0c;不管是工作使用还是日常使用来说都有一些影响&#xff0c;如何才能让Mac的右键菜…

Vite + Vue3 使用 cdn 引入依赖,并且把外部 css、js 文件内联引入

安装插件 pnpm i element-plus echarts axios lodash -S在 vite.config.js 引用 注意事项&#xff1a;element-plus 不能在 vite.config.js 中使用按需加载&#xff0c;需要在 main.js 中全局引入&#xff1b; import { resolve } from path import { defineConfig } from v…

跟李沐学AI:使用注意力机制的seq2seq

动机 机器翻译中&#xff0c;每个生成的单词可能相关于源句子中的不同词。但Seq2sqe模型不能对此直接建模。 简单的Seq2Seq模型存在一个问题&#xff0c;即它将整个输入序列的信息压缩到了一个固定长度的向量中&#xff0c;这可能导致信息丢失&#xff0c;尤其是当输入序列很…

linux自用小手册

一、GDB常用命令 想用gdb调试C或C程序&#xff0c;编译时需要加-g选项&#xff0c;编译出的文件为debug状态&#xff08;如果不加则是release状态&#xff09;&#xff0c;且不可以加-O选项进行优化。 命令简写解释set args 设置程序传递的参数 例&#xff1a;./demo -v value…

PCL 计算点云OBB包围盒(PCA)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 计算协方差矩阵和质心 2.1.2 计算特征值和特征向量 2.1.3 构建包围盒并可视化 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与…

Renesas R7FA8D1BH (Cortex®-M85)的PWM控制小车

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 硬件架构 2.1 硬件框架结构 2.2 小车控制原理 3 软件功能实现 3.1 FSP配置参数 3.2 代码实现 3.3 源代码文件 源代码下载地址&#xff1a; https://www.firebbs.cn/forum.php?modviewthre…

社工字典生成工具 —— CeWL 使用手册

GitHub - digininja/CeWL: CeWL is a Custom Word List GeneratorCeWL is a Custom Word List Generator. Contribute to digininja/CeWL development by creating an account on GitHub.https://github.com/digininja/CeWL/ 0x01&#xff1a;CeWL 简介 CeWL&#xff08;Cust…

MySQL 联合索引底层存储结构及索引查找过程解读

前言 大家好&#xff0c;我是 Lorin &#xff0c;联合索引&#xff08;Composite Index&#xff09;又称复合索引&#xff0c;它包括两个或更多列。与单列索引不同&#xff0c;联合索引可以覆盖多个列&#xff0c;这有助于加速复杂查询和过滤条件的检索。联合索引的列顺序非常…

从零开始学cv-17:图像绘制基本图形

文章目录 前言一、绘制直线与箭头二、绘制矩形三、绘制圆形椭圆形 前言 随着计算机视觉技术的不断发展&#xff0c;OpenCV作为一款强大的开源图像处理库&#xff0c;受到了越来越多开发者的喜爱。本文将带领读者走进OpenCV的世界&#xff0c;从基础入手&#xff0c;详细介绍如…

冷热数据分离

优质博文&#xff1a;IT-BLOG-CN 一、背景 随着机票业务的快速发展&#xff0c;订单量持续增长对业务性能带来影响&#xff0c;需要进行冷热数据分离。目前机票订单模块主要使用Mysql(InnoDB)作为数据库存储&#xff0c;历史订单信息状态修改频率低并占用大量数据库存储空间&…

腾讯IM SDK:TUIKit发送多张图片

一、问题描述 在使用腾讯IM DEMO&#xff08;https://github.com/TencentCloud/chat-uikit-vue.git&#xff09;时发现其只支持发送一张图片&#xff1a; 二、解决方案 // src\TUIKit\components\TUIChat\message-input-toolbar\image-upload\index.vue<inputref"inp…