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 array操作10个小技巧分享
Jun 23 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
ThinkPHP控制器详解
Jul 27 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
form自动提交实例讲解
Jul 10 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
Yii2 queue的队列使用详解
Jul 19 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
探讨php中header的用法详解
2013/06/07 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
JavaScript静态的动态
2006/09/18 Javascript
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
对python 命令的-u参数详解
2018/12/03 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
python批量处理txt文件的实例代码
2020/01/13 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
python集合删除多种方法详解
2020/02/10 Python
python代码xml转txt实例
2020/03/10 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
函授大专自我鉴定
2013/11/01 职场文书
物理教育专业毕业生推荐信
2013/11/03 职场文书
九年级语文教学反思
2014/02/04 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
车间机修工岗位职责
2014/02/28 职场文书
党支部意见范文
2015/06/02 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
pandas中DataFrame重置索引的几种方法
2021/05/24 Python