前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel框架中Blade模板的用法示例

Laravel框架中Blade模板的用法示例

作者头像
用户2323866
修改2021-07-05 10:18:34
1.5K0
修改2021-07-05 10:18:34
举报
文章被收录于专栏:技术派

简介 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> </d/【当下浏览的服务器和开发工具是哪些】/iv>

1.4.2 使用组件 路径:Laravel/resources/views/test.blade.php

@component('component') @slot('title') 组件标题 @endsolt

@slot('content') 组件内容 @endslot @endcomponent

  1. 数据显示

2.1 转义输出

{{ $name }}

2.2 未转义输出

{!! $name !!}

2.3 原格式输出

第一种(适合量不多):

@{{ name }}

第二种(适合量多):

@verbatim {{ name }} {{ sex }} {{ age }} @endverbatim

  1. 流程控制

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

  1. 使用原生 PHP

@php echo "使用原生 PHP"; @endphp

  1. 包含子视图

注意

被包含的子视图可以引用父视图定义的所有变量。 你可以传递额外的数据到子视图

定义父视图 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>

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档