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教程孙仲岳主讲
Jan 07 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
Smarty最简单实现列表奇偶变色的方法
Jul 01 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 PHP
PHP goto语句用法实例
Aug 06 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添加MySQL数据记录代码
2008/06/07 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
php批量删除cookie的简单实现方法
2015/01/26 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
form自动提交实例讲解
2017/07/10 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
优化javascript的执行速度
2010/01/23 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python多线程实现TCP服务端
2019/09/03 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物