最为常用的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/

目录
相关文章
|
3月前
|
存储 JSON 数据库
Laravel-EloquentORM高级部分解析
Laravel-EloquentORM高级部分解析
28 0
|
12天前
|
开发者 Python
Django模板系统的强大之处:动态渲染与扩展性
【4月更文挑战第15天】Django模板系统是Web开发中的强大工具,支持动态渲染和扩展性。动态渲染包括变量、标签和过滤器的使用,实现内容根据上下文数据动态生成。模板继承和自定义标签则提升了扩展性,减少代码重复,增强可维护性。通过这些特性,Django模板系统助力开发者构建高效、动态的Web应用。
|
9月前
|
缓存 中间件 PHP
最为常用的Laravel操作(2)-路由
整理了 Laravel 框架路由最常用的操作,如路由参数、路由群组、中间件等。本系列共有 3 篇文章。
52 0
|
10月前
|
存储 JSON 数据处理
最为常用的Laravel操作(1)-Eloquent模型
整理了 Laravel 框架 Eloquent 模型最常用的操作,包括一些常用的属性、方法,模型关联等。本系列共有 3 篇文章。
62 2
|
11月前
|
Python
Django框架开发004期 Python编程调用自定义Django框架template模板网页
Django框架开发004期 Python编程调用自定义Django框架template模板网页
|
缓存 JavaScript 前端开发
使用 pug 模板语法提高页面开发的效率
pug由jade改名而来,通过缩进(表示标签间的嵌套关系)的方式来编写代码的过程,在编译的过程中,不需要考虑标签是否闭合的问题。可以加快写代码速度,也为代码复用提供了便捷。
184 0
|
JavaScript 前端开发 Java
Vue3 的学习教程汇总、源码解释项目、支持的 UI 组件库、优质实战项目
Vue3 的学习教程汇总、源码解释项目、支持的 UI 组件库、优质实战项目
544 0
Vue3 的学习教程汇总、源码解释项目、支持的 UI 组件库、优质实战项目
|
PHP
【laravel】第一节 访问流程
【laravel】第一节 访问流程
186 0
【laravel】第一节 访问流程
|
JSON 缓存 移动开发
前端组件库文档解决方案
本篇主要分享什么内容: 常用的文档/静态站点生成工具有哪些 每个工具有什么特点 工具适应场景 希望可以帮助到你