微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

简介

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

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

1.1 继承

1.1.1 定义父模板

rush:plain;"> Laravel/resources/views/base.blade.PHP

1.1.2 子模板继承

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

rush:PHP;"> @extends('base')

1.2 片段

1.2.1 父模板定义片段

rush:PHP;"> @section('part') // 中间内容即使一个片段 @show

1.2.2 子模板填充片段

rush:PHP;"> @section('part')

片段填充内容

rush:PHP;"> @endsection

1.3 占位

1.3.1 父模板占位:

rush:PHP;"> @yield('title')

1.3.2 子模板填充占位

第一种填充(文本):

rush:PHP;"> @section('title','填充的文本占位')

第二种填充(文本 or html)

rush:PHP;"> @section('title')

填充的占位

rush:PHP;"> @endsection

1.4 组件、插槽

1.4.1 定义组件

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

rush:xhtml;">
{{ $title }}
{{ $content }}

1.4.2 使用组件

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

rush:PHP;"> @component('component') @slot('title') 组件标题 @endsolt

@slot('content')
组件内容
@endslot
@endcomponent

2. 数据显示

2.1 转义输出

rush:PHP;"> {{ $name }}

2.2 未转义输出

rush:PHP;"> {!! $name !!}

2.3 原格式输出

第一种(适合量不多):

rush:PHP;"> @{{ name }}

第二种(适合量多):

rush:PHP;"> @verbatim {{ name }} {{ sex }} {{ age }} @endverbatim

3. 流程控制

3.1 for

注意:

  • 没有 $loop 变量
  • 没有 @empty
  • 有 @break
  • 有 @continue
rush:PHP;"> @for ($i = 0; $i < 10; ++$i) {{ $i }}
@endfor

3.2 foreach

注意:

  • 有 $loop 变量
  • 没有 @empty
  • 有 @break
  • 有 @continue
$v) {{ $k }}
@endforeach

3.3 forelse

注意:

  • 有 $loop 变量
  • 必须有 @empty
  • 有 @break
  • 有 @continue
$v) {{ $k }}
@empty

数组没有数据

rush:PHP;"> @endforeach

4. 使用原生 PHP

rush:PHP;"> @PHP echo "使用原生 PHP"; @endPHP

5. 包含子视图

注意

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

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

rush:PHP;"> /** * 父视图 * 父视图拥有变量 $name = 'chenxuelong' */
{{ $username }}
@include('child',[ 'other' => '额外数据' ])

/**

  • 子视图
    */
    {{ $username }}
    {{ $other }}

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。