lavarel模板引擎blade学习
blade 模板学习
特点
主要的两个优点是:模板继承和区块
继承页面布局
布局文件(layout.php) + 详情文件 (page.php) 的组合,即一般到具体的组合。在blade文件之中的体现为:
在详情视图文件之中“继承”布局文件。如:
在详情文件(page.php)头部使用命令@extend(“layout.php”)
在yii或handbar模版之中,都有占位符,同样地也类似于vue之中的父子组件之间的传值,在blade模版之中,在父模版之中@yield命令来显示子模板之中的区块名,并且在子模板以@section()和@endsection()来“声明”区块。(基于这个继承关系,姑且称为父模板与子模板)。
此外,blade支持{{ $name }},这样的类似其他模版引擎的语法引入变量。而容易与前端的模板引擎冲突,如arttemplate(简明语法),vue的取值表达式相互冲突,blade提供的解决方案是:在双花括号之前加上@,eg:
<h1>laravel</h>
halo,@{{name}}
当大片使用javascript变量的时候,可以使用@verbatim指令包裹html内容,这样就不需要为每个需要解析的变量增加@符号前缀:
@verbatim
<div class ="container">
Hello,{{name}}
</div>
@endverbatim
结构控制
/*if ...else ...*/
@if(count($records) === 1)
我有一条记录!
@elseif(count($records > 1))
我有多条记录!
@else
我没有任何记录!
@endif
/*for... foreach... empty... empty...*/
@for($i = 0 ; $i < 10 ; $i++>)
目前的值为 {{ $i }}
@endfor
@foreach($users as $user)
<p>此用户为 {{ $user->id }}</p>
@endforeach
@empty
<p>没有用户</p>
@empty
@while(true)
dead loop
@endwhile
在循环之中,可以使用$loop这个预定义的变量来获取一些关于循环的一些特效,特别的是在嵌套循环之中,可以通过$loop预定义对象来的parent来获取父循环中的$loop变量。如:
@foreach ($users as $user)
@foreach($user->posts as $post)
@if($loop->parent->first)
This is first iteration of the parent loop.
@endif
@endforeach
@endforeach
$loop 这个预定义变量包含的属性如下。
| 属性 | 描述 |
|---|---|
| $loop->index | 当前循环所迭代的索引,起始为 0。 |
| $loop->iteration | 当前迭代数,起始为 1。 |
| $loop->remaining | 循环中迭代剩余的数量。 |
| $loop->count | 被迭代项的总数量。 |
| $loop->first | 当前迭代是否是循环中的首次迭代。 |
| $loop->last | 当前循环的嵌套深度。 |
| $loop->depth | 当前循环所迭代的索引,起始为 0。 |
| $loop->parent | 当在嵌套的循环内时,可以访问到父循环中的 $loop 变量。 |
php
当在页面之中引用少量的php代码的时候,可使用@php指令。如
@php
// php codes go here...
@endphp
引入子视图
blade的@include命令来引用已存在的视图,所有在父试图的可用变量在被引入的视图中都是可用的。如:
<div>
@include('shared.errors')
<from>
<!-- 表单内容 -->
</from>
</div>
除了继承父试图中的所有数据,也可以通过传递额外的数组数据至被引用的页面:
@include('view.name',['some'=>'data'])
其他blade 功能不常用,不做分析...
lavarel模板引擎blade学习的更多相关文章
- Laravel 模板引擎Blade中标签详细介绍
这篇文章主要介绍了Laravel模板引擎Blade中section的一些标签的区别介绍,需要的朋友可以来看看. Laravel 框架中的Blade模板引擎很好用,但是官方文档介绍的并不详细,我接下来将 ...
- laravel使用的模板引擎 blade
使用blade引擎的话必须在控制器中使用use Blade
- Laravel模板引擎Blade中section的一些标签的区别介绍
Laravel 框架中的 Blade 模板引擎,很好用,但是在官方文档中有关 Blade 的介绍并不详细,有些东西没有写出来,而有些则是没有说清楚.比如,使用中可能会遇到这样的问题: 1.@yield ...
- Laravel中的模板引擎Blade
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 模板引擎Velocity学习系列-#set指令
#set指令 #set指令用于向一个变量或者对象赋值. 格式: #set($var = value) LHS是一个变量,不要使用特殊字符例如英文句号等,不能用大括号括起来.测试发现#set($user ...
- 模板引擎jade学习
语言参考 标签列表 doctype Tags Block Expansion Attributes Boolean Attributes Class Attributes Class Literal ...
- php模板引擎之blade
一.简介模板引擎 模板引擎是将网站的页面设计和PHP应用程序几乎完全分离的一种解决方案,它能让前端工程师专注页面搭建,让后台工程师专注功能实现,以便实现逻辑分离,让每个人发挥所长.模板引擎技术的核心是 ...
- 深入浅出之Smarty模板引擎工作机制(二)
源代码下载地址:深入浅出之Smarty模板引擎工作机制 接下来根据以下的Smarty模板引擎原理流程图开发一个自己的模板引擎用于学习,以便加深理解. Smarty模板引擎的原理,其实是这么一个过程: ...
- 【转链接】Handlebars模板引擎以及浅谈模板引擎的实现原理
什么叫做“模板引擎“?我是这么理解的:就是对一些待填入数据的占位符的解析.如果你使用过Python的django框架,那你肯定是模板一点也不陌生.模板引擎就是解析模板的,把后端数据塞到前端页面模板. ...
随机推荐
- 我进行jvm内存调优的一些记录
jvm内存调优的一些记录 java内存调优的方法和过程 可以使用 jmap -heap pid号 查看,例如pid是9300,执行的结果可能是这样的. root@ubuntu:~# jmap -hea ...
- Async和await关键字的用法
async & await 的前世今生(Updated) 1. 方法打上Async关键字, 就可以使用await调用别的Async方法了 2. 记得在需要异步执行的方法里面调用await或者n ...
- Java JDBC SqlServer
一.驱动 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=11774 引用Jar包时注意区分Java版本: Sqljdbc4 ...
- nginx配置https转发到tomcat(使用自签名的证书)
一.使用openSSL生成自签名的证书 1.生成RSA私钥 命令:openssl genrsa -des3 -out server.key 1024 说明:生成rsa私钥,des3算法,1024强度, ...
- 设计模式(12)--Proxy(代理模式)--结构型
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.模式定义: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. ...
- h5新增加的存储方法
h4中使用的cookie把用户信息保存在客户端浏览器,但是它受到很多限制. 大小:最多能存储4k 带宽:它是随着http请求一起发送到服务器的,因此浪费一部分的带宽. 复杂度:操作复杂. h5新增加了 ...
- 【读书笔记】iOS-网络-异步请求与运行循环
异步请求需要运行循环.当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信.异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在GCD块中或者是通过 ...
- webpack中mainifest.js vendor.js app.js 三者的区别
场景: 大家在利用构建工具进行应用最后的打包过程中,我们希望做到的是将业务代码和第三方引用模块代码分开打包. 因为第三方引用模块代码通常很大,而且在不引入新的模块之前基本上是不会变动的.所以我们需要将 ...
- 快速配置webpack 4.x
区分开发模式和生产模式: npm run start——开发模式,启用devServer,文件的改动实时更新.刷新 npm run build——生产模式,打包文件到dist文件夹 // packag ...
- 【python】字典/dictionary操作
字典(dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号 {} 中 ...