当前位置:首页 > 编程教程 > php技术文章 > Laravel框架中Blade模板的用法示例

Laravel框架中Blade模板的实例代码

  • 发布时间:
  • 作者:码农之家
  • 点击:155

这篇文章主要知识点是关于Laravel框架、Blade、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Laravel框架关键技术解析
  • 类型:Laravel大小:78.2 MB格式:PDF作者:陈昊
立即下载

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

简介

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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对码农之家的支持。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

您可能感兴趣的文章:

  • 分享laravel5.4+vue+element实现简单搭建的实例
  • 如今laravel来到5.4版本,更方便引入vue了,具体步骤如下: 1.下载laravel5.4,这边是下载地址(里面的配置文件都写得差不多了)! 2.打开package.json 内容如下 { private: true, scripts: { dev: node node_modules/cross-env/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js, watch: node node_modules/cross-env/bin/cross-env.js NODE_ENV=development node……

  • 解析laravel批量更新多条记录的方法
  • 前言 相信熟悉laravel的童鞋都知道,laravel有批量一次性插入多条记录,却没有一次性按条件更新多条记录。 是否羡慕thinkphp的saveAll,是否羡慕ci的update_batch,但如此优雅的laravel怎么就没有类似的批量更新的方法呢? 高手在民间 Google了一下,发现stackoverflow( https://stackoverflow.com/questions/26133977/laravel-bulk-update )上已经有人写好了,但是并不能防止sql注入。 本篇文章,结合laravel的……

  • 如何实现Laravel的服务容器的实例方法
  • 1. 容器的本质 服务容器本身就是一个数组,键名就是服务名,值就是服务。 服务可以是一个原始值,也可以是一个对象,可以说是任意数据。 服务名可以是自定义名,也可以是对象的类名,也可以是接口名。 // 服务容器$container = [ // 原始值 text = 这是一个字符串, // 自定义服务名 customName = new StdClass(), // 使用类名作为服务名 StdClass = new StdClass(), // 使用接口名作为服务名 Namespa……

  • Laravel框架运行出错提示“RuntimeException No application encryption key has been specified”解决方案
  • 本文实例讲述了Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法。分享给大家供大家参考,具体如下: ①在项目根目录放置.env文件 .envAPP_NAME=LaravelAPP_ENV=localAPP_KEY=APP_DEBUG=trueAPP_LOG_LEVEL=debugAPP_URL=http://localhostDB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=homesteadDB_USERNAME=homesteadDB_PASSWORD=secretBROADCAST_DRIVER=logCACHE_DRIVER=fileSESSION_DRIVER=fileSESSION_LIFETIME=1……

  • 关于Laravel SQL语句记录方式(推荐)
  • 打印sql语句,直接在你执行SQL语句后输出 方法一: $queries = DB::getQueryLog(); $a = end($queries); $tmp = str_replace(?, .%s., $a[query]); echo vsprintf($tmp, $a[bindings]); exit; 方法二:注意 放在routes.php上面 Event::listen(illuminate.query,function($query){var_dump($query);}); 以上这篇Laravel SQL语句记录方式(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

    相关电子书
    学习笔记
    网友NO.422430

    Laravel框架之blade模板新手入门教程及小技巧

    简介 Blade 是 Laravel 所提供的一个简单且强大的模板引擎。相较于其它知名的 PHP 模板引擎,Blade 并不会限制你必须得在视图中使用 PHP 代码。所有 Blade 视图都会被编译缓存成普通的 PHP 代码,一直到它们被更改为止。这代表 Blade 基本不会对你的应用程序生成负担。 Blade 视图文件使用 .blade.php 做为扩展名,通常保存于 resources/views 文件夹内。 为什么要使用blade模板 容易理解,思路清晰 方便,直接可以在框架里使用,可以直观的观察到自己写的代码的样子 对后台数据的处理方便,blade模板和框架之间的参数传递实在是太方便了,可以说是随心所欲 文档齐全,有问题基本可以查到 适合单人开发,在完成后端实现后可以直接在blade模板里调用,写起来顺手 可以使用bootstrap等样式来渲染页面,可以达到一些基本的美化需求 局限性 只能做一些简易的页面,复杂的页面还是……

    网友NO.164025

    laravel5.1框架基础之Blade模板继承简单使用方法分析

    本文实例讲述了laravel5.1框架基础之Blade模板继承简单使用方法。分享给大家供大家参考,具体如下: 模板继承什么用? 自然是增强基础页面的复用,有利于页面文档的条理,也便于更改多处使用的内容,如页头、页脚 1.用法概要 @include('common.header') 包含子视图 @extends('article.common.base') 继承基础模板 @yield('content') 视图占位符 @section('content') @endsection 继承模板后向视图占位符中填入内容 {{-- 注释 --}} Blade模板中注释的使用 2.具体使用 2.1 新建Article基础模板base.blade.php 直接使用Bootstrap4模板代码及CDN,新建视图基础模板 路径 resources/views/article/common/base.blade.php !DOCTYPE htmlhtml lang="en"headtitleArtilce|标题在此/titlemeta charset="utf-8"meta name="viewport" content="width=device-width, initial-scale=1"meta http-equiv="x-ua-compatible" content="ie=edge" link rel="stylesheet" href="https://cdn.rawgit.com/twbs/bootstra……

    网友NO.631529

    如何通过View::first使用Laravel Blade的动态模板详解

    前言 本文主要给大家介绍了关于View::first使用Laravel Blade动态模板的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 当创建动态组件或者页面的时候,有时候我们想当自定义模版存在的时候展示它,否则展示默认的模版。 例如,当我们创建页面模块的时候,通常需要给“关于我们”和“联系我们”自定义模版(如展示照片或者联系表单),而“我们的服务”则可以使用默认模板。 我们可以通过一系列的 if 判断或者使用 view()-exists() 来判断自定义模板是否存在,然而,Laravel 5.5 为我们带来了一个更加优雅的方法来实现这个功能。 View::first 的使用 view()-first() 方法可以使我们把下面的代码 if (view()-exists('custom-template')) { return view('custom-template', $data);} return view('default-template', $data); 替换为更加简洁的版本: return view()-fir……

    <
    1
    >

    Copyright 2018-2020 xz577.com 码农之家

    本站所有电子书资源不再提供下载地址,只分享来路

    版权投诉 / 书籍推广 / 赞助:QQ:520161757