最为常用的Laravel操作(3)-模板

简介: 整理了 Laravel 框架模板最常用的操作,如模板常用语法、模板继承、流程控制、循环等。本系列共有 3 篇文章。

Blade 模板引擎

模板继承

定义布局:

<!-- 存放在 resources/views/layouts/app.blade.php -->
<html>
    <head>
        <title>App Name - @yield('title')</title>
    </head>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

继承布局:

<!-- 存放在 resources/views/child.blade.php -->
@extends('layouts.app')

@section('title', 'Page Title')

@section('sidebar')
    @parent
    <p>This is appended to the master sidebar.</p>
@endsection

@section('content')
    <p>This is my body content.</p>
@endsection

数据显示

注:Blade 的 { {}} 语句已经经过 PHP 的 htmlentities 函数处理以避免 XSS 攻击。

Hello, {
  { $name }}.

The current UNIX timestamp is {
  { time() }}.

输出存在的数据, 两种方式都可以:

{
  { isset($name) ? $name : 'Default' }}

{
  { $name or 'Default' }}

显示原生数据:

Hello, {!! $name !!}.

流程控制

if 语句:

@if (count($records) === 1)
    I have one record!
@elseif (count($records) > 1)
    I have multiple records!
@else
    I don't have any records!
@endif
@unless (Auth::check())
    You are not signed in.
@endunless

循环:

@for ($i = 0; $i < 10; $i++)
    The current value is {
  { $i }}
@endfor

@foreach ($users as $user)
    <p>This is user {
  { $user->id }}</p>
@endforeach

@forelse ($users as $user)
    <li>{
  { $user->name }}</li>
@empty
    <p>No users</p>
@endforelse

@while (true)
    <p>I'm looping forever.</p>
@endwhile

使用循环的时候还可以结束循环或跳出当前迭代:

@foreach ($users as $user)
    @if ($user->type == 1)
        @continue
    @endif

    <li>{
  { $user->name }}</li>

    @if ($user->number == 5)
        @break
    @endif
@endforeach

还可以使用指令声明来引入条件:

@foreach ($users as $user)
    @continue($user->type == 1)

        <li>{
  { $user->name }}</li>

    @break($user->number == 5)
@endforeach

$loop 变量

在循环的时候, 可以在循环体中使用 $loop 变量, 该变量提供了一些有用的信息, 比如当前循环索引, 以及当前循环是不是第一个或最后一个迭代:

@foreach ($users as $user)
    @if ($loop->first)
        This is the first iteration.
    @endif

    @if ($loop->last)
        This is the last iteration.
    @endif

    <p>This is user {
  { $user->id }}</p>
@endforeach

如果你身处嵌套循环, 可以通过 $loop 变量的 parent 属性访问父级循环:

@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当前循环的嵌套层级
$loop->parent嵌套循环中的父级循环变量

模板注释

{
  {-- This comment will not be present in the rendered HTML --}}

嵌入 PHP 代码

@php
    //
@endphp

文章来源于本人博客,发布于 2018-06-02,原文链接:https://imlht.com/archives/156/

目录
相关文章
|
6月前
|
存储 JSON 数据库
Laravel-EloquentORM高级部分解析
Laravel-EloquentORM高级部分解析
54 0
|
3月前
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
38 0
|
3月前
|
开发框架 自然语言处理 前端开发
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js的小型企业办公自动化系统的设计和开发附带文章和源代码设计说明文档ppt
基于ssm+vue.js的小型企业办公自动化系统的设计和开发附带文章和源代码设计说明文档ppt
46 4
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的企业人才管理与测评系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的企业人才管理与测评系统附带文章和源代码设计说明文档ppt
31 1
|
6月前
|
设计模式 敏捷开发 监控
深入探究软件自动化测试的策略与实践深入理解PHP中的命名空间
【5月更文挑战第27天】 在软件开发周期中,确保代码质量是至关重要的一环。随着敏捷开发和持续集成的普及,自动化测试成为提升效率和保障软件质量的重要手段。本文将详细探讨自动化测试策略的制定、工具选择以及在实际项目中的执行过程。我们将从自动化测试的基本原则出发,分析不同类型和级别的自动化测试案例,并结合具体实例,讨论如何优化测试流程,减少冗余,提高测试覆盖率和准确性。通过阅读本文,读者将获得一套实用的自动化测试实施框架,以支持其在快速迭代的开发环境中维护高水平的软件品质。 【5月更文挑战第27天】在本文中,我们将探讨PHP中的命名空间(namespace)的概念、用途和实现方式。通过详细解释命名
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js的幼儿资源互助共享平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的幼儿资源互助共享平台附带文章和源代码设计说明文档ppt
36 0
|
6月前
|
开发者 Python
Django模板系统的强大之处:动态渲染与扩展性
【4月更文挑战第15天】Django模板系统是Web开发中的强大工具,支持动态渲染和扩展性。动态渲染包括变量、标签和过滤器的使用,实现内容根据上下文数据动态生成。模板继承和自定义标签则提升了扩展性,减少代码重复,增强可维护性。通过这些特性,Django模板系统助力开发者构建高效、动态的Web应用。
|
6月前
项目管理工具计划模板解析:项目管理工具的双重功能与创建方法
本文介绍了项目计划模板的含义和重要性。项目计划模板是用于规划项目结构的可编辑文档,帮助团队明确任务、分配责任和管理时间。模板有助于跟踪项目进度、避免任务冲突,并简化会议安排。创建模板通常涉及选择合适的项目管理工具,如Zoho Projects或Microsoft Excel,然后分解任务、定义日期并持续调整。在Zoho Projects中,用户可以按步骤创建模板,包括命名、添加任务和设置相关细节。
75 0
|
缓存 中间件 PHP
最为常用的Laravel操作(2)-路由
整理了 Laravel 框架路由最常用的操作,如路由参数、路由群组、中间件等。本系列共有 3 篇文章。
72 0