简介 Blade它不像其他流行的 PHP 模板引擎那样限制你在视图中使用原生的 PHP 代码,事实上它就是把 Blade 视图编译成原生的 PHP 代码并缓存起来。缓存会在 Blade 视图改变时而改变,这意味着 Blade 并没有给你的应用添加编译的负担。Blade 视图文件使用 .blade.php 后缀,一般情况下都被存储在 resources/views 目录。 1. 继承、片段、占位、组件、插槽 1.1 继承 1.1.1 定义父模板 Laravel/resources/views/base.blade.php 1.1.2 子模板继承 路径:Laravel/resources/v **Laravel 框架中的 Blade 模板详解** Blade 模板是 Laravel 提供的一种简洁、强大的视图引擎,它允许开发者在视图中混合使用原生 PHP 代码,而无需受到传统模板引擎的限制。Blade 文件通常以 `.blade.php` 结尾,存储在 `resources/views` 目录下。Blade 模板在运行时会被编译成原生 PHP 代码并缓存,只有当模板文件发生变化时才会重新编译,这样不会增加应用的运行时负担。 ### 1. 继承、片段、占位、组件、插槽 #### 1.1 继承 - **定义父模板**:在 `Laravel/resources/views/base.blade.php` 文件中创建基础模板。 - **子模板继承**:子模板如 `Laravel/resources/views/child.blade.php` 使用 `@extends('base')` 声明继承自父模板。 #### 1.2 片段 - **定义父模板片段**:在父模板中使用 `@section('part')` 定义一个可被子模板覆盖的区域。 - **子模板填充片段**:使用 `@section('part')` 和 `@endsection` 在子模板中填充内容,或者使用 `@section('part', 'default content')` 提供默认值。 #### 1.3 占位 - **父模板占位**:在父模板中使用 `@yield('title')` 创建占位符,等待子模板填充。 - **子模板填充占位**:子模板通过 `@section('title', '填充的文本占位')` 或者 `@section('title')填充的占位@endsection` 进行填充。 #### 1.4 组件与插槽 - **定义组件**:在 `Laravel/resources/views/component.blade.php` 创建一个组件模板,例如包含标题和内容的布局。 - **使用组件**:在其他模板中使用 `@component('component')` 开始,然后使用 `@slot('title')` 和 `@endslot` 定义插槽内容,如组件标题和内容。 ### 2. 数据显示 - **转义输出**:`{{ $name }}` 会自动转义变量 `$name` 的内容,防止 XSS 攻击。 - **未转义输出**:`{!! $name !!}` 输出变量 `$name` 的原始内容,不进行转义。 - **原格式输出**:`@{{ name }}` 或 `@verbatim{{ name }}{{ sex }}{{ age }}@endverbatim` 用于大量原格式输出,避免使用花括号引起的混淆。 ### 3. 流程控制 - **for 循环**:支持基本的 `for` 循环,但没有 `$loop` 变量,可以使用 `@break` 和 `@continue`。 - **foreach 循环**:提供 `$loop` 变量,可以访问当前循环的索引和值,同样支持 `@break` 和 `@continue`。 - **forelse 循环**:当数组为空时,会执行 `@empty` 里面的代码块。 ### 4. 使用原生 PHP 在 Blade 模板中,可以通过 `@php` 和 `@endphp` 之间的代码块直接使用原生 PHP 代码。 ### 5. 包含子视图 - **包含子视图**:使用 `@include('child')` 可以在父视图中包含子视图,子视图可以访问父视图的所有变量,并且可以传递额外数据。 ### 总结 Blade 模板提供了丰富的功能,包括视图继承、内容片段、组件和插槽,以及原生 PHP 代码的支持,使得视图层的编写更加灵活和易于管理。同时,其编译机制确保了性能,使得 Blade 成为 Laravel 开发中不可或缺的一部分。通过掌握这些知识,开发者可以更高效地构建 Laravel 应用的前端视图。
- 粉丝: 7
- 资源: 945
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助