前言:Laravel文档梳理,仅作为记录后看,无关其他。

1、blade是什么?
Blade是Laravel提供的模板引擎

2、blade的视图文件是什么样的?
后缀为.blade.php的文件,存放于resources/views目录

3、blade模板的优点是?
模板继承 与 区块

4、blade模板示例:
<!-- 文件保存于 resources/views/layouts/master.blade.php -->

<html>
    <head>
        <title>应用程序名称 - @yield('title')</title>
    </head>
    <body>
        @section('sidebar')
            这是主要的侧边栏。
        @show

<div class="container">
            @yield('content')
        </div>
    </body>
</html>

@section定义一个内容区块,@yield被用来显示指定区块的内容。

5、页面的继承布局
实例,接4
<!-- 保存于 resources/views/child.blade.php -->

@extends('layouts.master')

@section('title', '页面标题')

@section('sidebar')
    @parent

<p>这边会附加在主要的侧边栏。</p>
@endsection

@section('content')
    <p>这是我的主要内容。</p>
@endsection

解释:
1、@extend命令指定子页面继承哪个布局,这里,继承的master.blade.php的布局
2、master布局中,定义了 <title>应用程序名称 - @yield('title')</title>,所以,子页面可以通过@section定义一个区块的内容,其他的一样。
3、@parent命令,这里需要注意一下,它是增加,而不是覆盖内容。@parent命令会在视图输出时,被置换成布局的内容。

6、blade页面赋值
Route::get('greeting', function () {
    return view('welcome', ['name' => 'Samantha']);
});

页面显示:
Hello, {{ $name }}.

Ps:任何你想要的代码都可以放到blade模板里
如 UNIX 时间戳为 {{ time() }}。

注意:blade模板的{{  }}语法会自动调用PHP的htmlentites函数来防御XSS攻击

7、blade与js语法的冲突
很多的js也有使用大括号来显示指定表达式的习惯,为了规避冲突,blade模板引擎使用@符号来区分。
<h1>Laravel</h1>

Hello, @{{ name }}.

8、blade模板的三目运算
{{ isset($name) ? $name : 'Default' }}
也可以这样替代:
{{ $name or 'Default' }}

9、有些变量,赋值到blade模板,会被htmlentites()函数转义,但是,你不想被转义,怎么办?
如下实例:
Hello, {!! $name !!}.

警告:对于用户提供的数据,请总是使用{{  }}语法来解析,以防止XSS攻击

10、if表达式
@if (count($records) === 1)
    我有一条记录!
@elseif (count($records) > 1)
    我有多条记录!
@else
    我没有任何记录!
@endif

11、@unless 除非
@unless (Auth::check())
    你尚未登录。
@endunless

括号为false显示“你尚未登录”

12、循环
@for ($i = 0; $i < 10; $i++)
    目前的值为 {{ $i }}
@endfor

@foreach ($users as $user)
    <p>此用户为 {{ $user->id }}</p>
@endforeach

@forelse ($users as $user)
    <li>{{ $user->name }}</li>
@empty
    <p>没有用户</p>
@endforelse

@while (true)
    <p>我永远都在跑循环。</p>
@endwhile

13、@include 引入子视图
<div>
    @include('shared.errors')

<form>
        <!-- 表单内容 -->
    </form>
</div>

Ps:子视图会继承父视图的所有数据,但如果,你还想给子视图传递额外数据,多加一个数组参数,即可。如下操作:
@include('view.name', ['some' => 'data'])

注意:避免在视图中使用__DIR__及__FILE__常数

14、@each命令
@each('view.name', $jobs, 'job')

Ps:参数一、局部视图名称;参数二、要传递的变量;参数三、视图中接收变量值的名称
换句话说,这条命令的意思是,给view.name视图传递变量$jobs的值到页面的job。

15、注释
{{-- 此注释将不会出现在渲染后的 HTML --}}

Ps:注释如上操作就行了。

16、@inject 服务注入
@inject('metrics', 'App\Services\MetricsService')

<div>
    每月收入:{{ $metrics->monthlyRevenue() }}。
</div>

Ps:@inject命令可以取出laravel服务器中的容器到页面。
参数一:服务的名;参数二:服务的类或接口的全名。

17、自定义blade命令
Blade允许自定义命令,使用directive()方法注册,实例如下:
<?php

namespace App\Providers;

use Blade;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * 运行服务注册后的启动进程。
     *
     * @return void
     */
    public function boot()
    {
        Blade::directive('datetime', function($expression) {
            return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>";
        });
    }

/**
     * 在容器注册绑定。
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

在blade页面,调用这个自定义的命令,比如页面传$val参数,调用如下:
@datetime($var)

Ps:注意自定方法中的with()方法,它会简单地返回指定对象的值,并且允许链式操作。

Laravel文档梳理9、Blade模板相关推荐

  1. Laravel文档梳理6、响应

    前言:Laravel文档梳理,仅作为记录后看,无关其他. 1.laravel框架最基本的响应 Route::get('/', function () {     return 'Hello World ...

  2. wps文档漫游删除_WPS自带的文档漫游和在线模板怎么关闭?

    也可以直接在注册表编辑器选择编辑查找查找目标中输入roaminghomepageguidedtag. 按确定后,(如第四幅图) 如果希望再次显示文档漫游,关闭文档, 方法一:在cmd(命令提示符)中输 ...

  3. SpringBoot 配置 generator代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)

    保姆级教程,逻辑删除及字段自动填充设置,特别要说明的是本次用的是MySQL数据库,如果使用Oracle数据库是,数据库配置需要改变,数据库表一定要大写,否则无法生成代码. 数据库表 CREATE TA ...

  4. Java生成PDF文档 iText使用PDF模板一

    最近在弄这个java生成pdf,哎,在网上查找了各种各样的学习资料,弄了几天,今天终于把这个效果简单的弄出来,所以,也把这个,我所走过的坑,作一个记录,提供接下来需要学习的人. 参考文献文档:http ...

  5. 用Axure制作一个PRD文档(结尾分享模板)

    经常有小伙伴在微信上问我axure版本的PRD写法,今天就系统的跟大家分享一下,如何用axure制作一个完善的PRD,废话不多说,直接开始干货分享. 1.修改记录 修改记录主要记录你对原型的修改内容, ...

  6. B2G OS官网文档梳理

    前提: B2G OS官方文档地址:https://developer.mozilla.org/en-US/docs/Archive/B2G_OS 在网上查阅关于FireFox OS相关的文章.博客,发 ...

  7. 服务器文档梳理,服务器节点与集群

    服务器节点与集群 内容精选 换一换 节点是容器集群组成的基本元素.节点取决于业务,既可以是虚拟机,也可以是物理机.每个节点都包含运行Pod所需要的基本组件,包括Kubelet.Kube-proxy . ...

  8. WPS 去掉自动打开的文档漫游和在线模板

    关闭文档漫游  在cmd(命令提示符)中输入regedit.exe回车,将弹出"注册表编辑器",选择HKEY_CURRENT_USER>>Software>> ...

  9. 服务器文档梳理,工作内容:配置文件服务器并整理文档

    <工作内容:配置文件服务器并整理文档>由会员分享,可在线阅读,更多相关<工作内容:配置文件服务器并整理文档(8页珍藏版)>请在人人文库网上搜索. 1.工作内容:配置文件服务器, ...

  10. 计算机二级模板文档,计算机二级教案模板.doc

    教案首页 第 8 次课 授课时间:2006 年10月24日 课程名称 <计算机应用基础> 年级 2005 专业.层次 护理专业本科 授课教师 刘帮涛 职称 讲师 课型(大.小) 大 学时 ...

最新文章

  1. 21天学通HTML5和CSS3第二版,21天学通HTML5+CSS3
  2. CentOS下 安装xampp
  3. android默认获取敏感权限
  4. 生成n套数位加减乘除_leetcode 算法汇总(四)位运算
  5. python是什么 自学-这是大多数新手入门之后强烈推荐的python自学入门指南秘笈...
  6. [简单]1.宝石和石头
  7. 万网域名注册、域名解析与备案流程
  8. JavaScript 之 学习网站推荐 强推【javascript.info】
  9. Iron WebScraper 网络爬虫
  10. template的使用,泛式编程
  11. FPGA的学习:基于ROM的VGA图像显示(弹跳特效)
  12. 视频损坏解决办法(个人记录)
  13. Python数据分析训练营——Python数据分析之Panads-1
  14. Android Snackbar使用方法及小技巧-design
  15. 如何看待2023年秋招技术岗哀鸿遍野?
  16. Vue.js入门学习--列表渲染--v-for遍历数组生成元素(四)
  17. 设置文本框 input [type=text] 的长度不超过固定值,输入的字符不超过固定值
  18. R 数据分析方法(梅长林)exercise1-4
  19. 为什么手机里的小爱音响app里搜不到家里的小爱音箱_教你500元用小米米家网关+小爱音箱尝鲜最AI智能生活...
  20. java万年历课程设计代码,JAVA《万年历系统》课程设计

热门文章

  1. 《赖氏经典英语语法》第四集
  2. 安装CUDA和CUDNN
  3. CS224N NLP
  4. iTunes更改备份路径
  5. 腾讯云cdn设置 php,腾讯云CDN缓存过期配置问题详解
  6. 图像特征原理--HOG特征
  7. SQL SERVER “指定的网络名不再可用”
  8. PPT:动画出现设置
  9. 微信开发者工具 ETIMEDOUT
  10. Android Studio入门到精通