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

2018-09-07 13:34

阅读:230

  简介

  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/views/child.blade.php

   @extends(base)

  1.2 片段

  1.2.1 父模板定义片段

   @section(part) // 中间内容即使一个片段 @show

  1.2.2 子模板填充片段

   @section(part)

  片段填充内容

   @endsection

  1.3 占位

  1.3.1 父模板占位:

   @yield(title)

  1.3.2 子模板填充占位

  第一种填充(文本):

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

  第二种填充(文本 or html)

   @section(title)

  填充的占位

   @endsection

  1.4 组件、插槽

  1.4.1 定义组件

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

   <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

   @component(component) @slot(title) 组件标题 @endsolt @slot(content) 组件内容 @endslot @endcomponent

  2. 数据显示

  2.1 转义输出

   {{ $name }}

  2.2 未转义输出

   {!! $name !!}

  2.3 原格式输出

  第一种(适合量不多):

   @{{ name }}

  第二种(适合量多):

   @verbatim {{ name }} {{ sex }} {{ age }} @endverbatim

  3. 流程控制

  3.1 for

  注意:

   没有 $loop 变量 没有 @empty 有 @break 有 @continue @for ($i = 0; $i < 10; ++$i) {{ $i }} <br /> @endfor

  3.2 foreach

  注意:

   有 $loop 变量 没有 @empty 有 @break 有 @continue @foreach ($data as $k => $v) {{ $k }} <br /> @endforeach

  3.3 forelse

  注意:

   有 $loop 变量 必须有 @empty 有 @break 有 @continue @foreach ($data as $k => $v) {{ $k }} <br /> @empty

   数组没有数据

   @endforeach

  4. 使用原生 PHP

   @php echo 使用原生 PHP; @endphp

  5. 包含子视图

  注意

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

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

   /** * 父视图 * 父视图拥有变量 $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>

  总结

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


评论


亲,登录后才可以留言!