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 相关文章推荐
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
php时区转换转换函数
Jan 07 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP中的访问修饰符简单比较
Feb 02 PHP
tp5框架的增删改查操作示例
Oct 31 PHP
详细分析PHP7与PHP5区别
Jun 26 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上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php中使用GD库做验证码
2016/03/31 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
Extjs中常用表单介绍与应用
2010/06/07 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
竞选班长自荐书范文
2014/03/09 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
法律专业求职信
2014/05/24 职场文书
酒店节能减排方案
2014/05/26 职场文书
学校献爱心活动总结
2014/07/08 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
班级活动总结格式
2014/08/30 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
车间统计员岗位职责
2015/04/14 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
关于python中模块和重载的问题
2021/11/02 Python
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA
Mysql如何查看是否使用到索引
2022/12/24 MySQL