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 相关文章推荐
thinkphp3.0 模板中函数的使用
Nov 13 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
PHP生成数组再传给js的方法
Aug 07 PHP
php中opendir函数用法实例
Nov 15 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
PHP利用百度ai实现文本和图片审核
May 08 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
discuz目录文件资料汇总
2014/12/30 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
python tkinter实现连连看游戏
2020/11/16 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
实习报告评语
2014/04/26 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
社区结对共建协议书
2016/03/23 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫