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


Posted in PHP onAugust 30, 2017

简介

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>

总结

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

PHP 相关文章推荐
利用PHP创建动态图像
Oct 09 PHP
PHP 数组入门教程小结
May 20 PHP
php 获取远程网页内容的函数
Sep 08 PHP
php实现mysql同步的实现方法
Oct 21 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
在PHP中使用redis
Nov 04 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP等比例压缩图片的实例代码
Jul 26 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
php实现支持中文的文件下载功能示例
Aug 30 #PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 #PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 #PHP
PHP单例模式与工厂模式详解
Aug 29 #PHP
PHP迭代与递归实现无限级分类
Aug 28 #PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 #PHP
PHP大文件分割上传 PHP分片上传
Aug 28 #PHP
You might like
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
python局部赋值的规则
2013/03/07 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
numpy 进行数组拼接,分别在行和列上合并的实例
2018/05/08 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
公务员总结性个人自我评价
2013/12/05 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
就业协议书样本
2014/08/20 职场文书
2014年检验员工作总结
2014/11/19 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
德生2P3收音机开箱评测
2022/04/30 无线电