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 相关文章推荐
怎么使 Mysql 数据同步
Oct 09 PHP
基于mysql的论坛(5)
Oct 09 PHP
php中文本操作的类
Mar 17 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
php cc攻击代码与防范方法
Oct 18 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 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 破解防盗链图片函数
2008/12/09 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
php模板引擎技术简单实现
2016/03/15 PHP
php英文单词统计器
2016/06/23 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
js继承的实现代码
2010/08/05 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
js实现开关灯效果
2020/03/30 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
window下eclipse安装python插件教程
2017/04/24 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
基于python3生成标签云代码解析
2020/02/18 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
应届大学生求职的自我评价
2013/11/17 职场文书
社区国庆节活动方案
2014/02/05 职场文书
求职简历自我评价范例
2014/03/12 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
社区义诊通知
2015/04/24 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
护士旷工检讨书
2015/08/15 职场文书
情感电台广播稿
2015/08/18 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python