Laravel框架中Blade模板的用法示例

2025-05-29 0 70

简介

Blade它不像其他流行的 PHP 模板引擎那样限制你在视图中使用原生的 PHP 代码,事实上它就是把 Blade 视图编译成原生的 PHP 代码并缓存起来。缓存会在 Blade 视图改变时而改变,这意味着 Blade 并没有给你的应用添加编译的负担。Blade 视图文件使用 .blade.php 后缀,一般情况下都被存储在 resources/views 目录。

1. 继承、片段、占位、组件、插槽

1.1 继承

1.1.1 定义父模板

?

1
Laravel/resources/views/base.blade.php

1.1.2 子模板继承

路径:Laravel/resources/views/child.blade.php

?

1
@extends('base')

1.2 片段

1.2.1 父模板定义片段

?

1

2

3
@section('part')

// 中间内容即使一个片段

@show

1.2.2 子模板填充片段

?

1
@section('part')

片段填充内容

?

1
@endsection

1.3 占位

1.3.1 父模板占位:

?

1
@yield('title')

1.3.2 子模板填充占位

第一种填充(文本):

?

1
@section('title' , '填充的文本占位')

第二种填充(文本 or html)

?

1
@section('title')

填充的占位

?

1
@endsection

1.4 组件、插槽

1.4.1 定义组件

路径:Laravel/resources/views/component.blade.php

?

1

2

3

4

5
<div class='component'>

<!-- $title,$content 变量实际上就是预定义的插槽 -->

<div class='title'>{{ $title }}</div>

<div class='content'>{{ $content }}</div>

</div>

1.4.2 使用组件

路径:Laravel/resources/views/test.blade.php

?

1

2

3

4

5

6

7

8

9
@component('component')

@slot('title')

组件标题

@endsolt

@slot('content')

组件内容

@endslot

@endcomponent

2. 数据显示

2.1 转义输出

?

1
{{ $name }}

2.2 未转义输出

?

1
{!! $name !!}

2.3 原格式输出

第一种(适合量不多):

?

1
@{{ name }}

第二种(适合量多):

?

1

2

3

4

5
@verbatim

{{ name }}

{{ sex }}

{{ age }}

@endverbatim

3. 流程控制

3.1 for

注意:

  • 没有 $loop 变量
  • 没有 @empty
  • 有 @break
  • 有 @continue
?

1

2

3
@for ($i = 0; $i < 10; ++$i)

{{ $i }} <br />

@endfor

3.2 foreach

注意:

  • 有 $loop 变量
  • 没有 @empty
  • 有 @break
  • 有 @continue
?

1

2

3
@foreach ($data as $k => $v)

{{ $k }} <br />

@endforeach

3.3 forelse

注意:

  • 有 $loop 变量
  • 必须有 @empty
  • 有 @break
  • 有 @continue
?

1

2

3
@foreach ($data as $k => $v)

{{ $k }} <br />

@empty

数组没有数据

?

1
@endforeach

4. 使用原生 PHP

?

1

2

3
@php

echo "使用原生 PHP";

@endphp

5. 包含子视图

注意

  • 被包含的子视图可以引用父视图定义的所有变量。
  • 你可以传递额外的数据到子视图

定义父视图 parent.blade.php,并包含子视图 child.blade.php,且传入额外数据

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
/**

* 父视图

* 父视图拥有变量 $name = 'chenxuelong'

*/

<div class='parent'>

<div class='username'>{{ $username }}</div>

<div class='child'>

<!-- 包含子视图 -->

@include('child' , [

'other' => '额外数据'

])

</div>

</div>

/**

* 子视图

*/

<div class='username'>{{ $username }}</div>

<div class='other'>{{ $other }}</div>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对快网idc的支持。

原文链接:https://segmentfault.com/a/1190000010864876

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Laravel框架中Blade模板的用法示例 https://www.kuaiidc.com/94293.html

相关文章

发表评论
暂无评论