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 相关文章推荐
一个更简单的无限级分类菜单代码
Jan 16 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP源代码数组统计count分析
Aug 02 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
php实现图片添加水印功能
Feb 13 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
详解PHP导入导出CSV文件
Nov 03 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
YII框架模块化处理操作示例
Apr 26 PHP
php用户名的密码加密更安全的方法
Jun 21 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
php提取微信账单的有效信息
2018/10/01 PHP
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Django之路由层的实现
2019/09/09 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
大专会计自我鉴定
2014/02/06 职场文书
团队经理竞聘书
2014/03/31 职场文书
还款承诺书范文
2014/05/20 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
浅谈Python数学建模之线性规划
2021/06/23 Python
PHP中多字节字符串操作实例详解
2021/08/23 PHP
警用民用对讲机找不同
2022/02/18 无线电