博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
laravel 视图流程控制,if switch for loop
阅读量:4331 次
发布时间:2019-06-06

本文共 2768 字,大约阅读时间需要 9 分钟。

流程控制

除了模板继承和数据显示之外,Blade 还为常用的 PHP 流程控制提供了便利操作,例如条件语句和循环,这些快捷操作提供了一个干净、简单的方式来处理 PHP 的流程控制,同时保持和 PHP 相应语句的相似性。

If 语句

可以使用 @if , @elseif , @else@endif 来构造 if 语句,这些指令的功能和 PHP 相同:

@if (count($records) === 1)    I have one record!@elseif (count($records) > 1)    I have multiple records!@else    I don't have any records!@endif

为方便起见,Blade 还提供了 @unless 指令,表示除非:

@unless (Auth::check())    You are not signed in.@endunless

此外,Blade 还提供了 @isset@empty 指令,分别对应 PHP 的 issetempty 方法:

@isset($records)    // $records is defined and is not null...@endisset@empty($records)    // $records is "empty"...@endempty

认证指令

@auth@guest 指令可用于快速判断当前用户是否登录:

@auth    // 用户已登录...@endauth@guest    // 用户未登录...@endguest

如果需要的话,你也可以在使用 @auth@guest 的时候指定:

@auth('admin')    // The user is authenticated...@endauth@guest('admin')    // The user is not authenticated...@endguest

Section 指令

你可以使用 @hasSection 指令判断某个 section 中是否有内容:

@hasSection('navigation')    
@yield('navigation')
@endif

Switch 语句

switch 语句可以通过 @switch@case@break@default@enswitch 指令构建:

@switch($i)    @case(1)        First case...        @break    @case(2)        Second case...        @break    @default        Default case...@endswitch

循环

除了条件语句,Blade 还提供了简单的指令用于处理 PHP 的循环结构,同样,这些指令的功能和 PHP 对应功能完全一样:

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

This is user {

{ $user->id }}

@endforeach@forelse ($users as $user)
  • {
    { $user->name }}
  • @empty

    No users

    @endforelse@while (true)

    I'm looping forever.

    @endwhile

    注:在循环的时候可以使用 $loop 变量获取循环信息,例如是否是循环的第一个或最后一个迭代。

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

    @foreach ($users as $user)    @if ($user->type == 1)        @continue    @endif    
  • {
    { $user->name }}
  • @if ($user->number == 5) @break @endif@endforeach

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

    @foreach ($users as $user)    @continue($user->type == 1)        
  • {
    { $user->name }}
  • @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    

    This is user {

    { $user->id }}

    @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 嵌套循环中的父级循环变量

    转载于:https://www.cnblogs.com/vania/p/9552576.html

    你可能感兴趣的文章
    学习操作系统导图
    查看>>
    在线的JSON formate工具
    查看>>
    winform非常实用的程序退出方法!!!!!(转自博客园)
    查看>>
    xml解析
    查看>>
    centos安装vim
    查看>>
    linux工作调度(计划任务)
    查看>>
    hdu--1698 Just a Hook(线段树+区间更新+懒惰标记)
    查看>>
    Python学习笔记-EXCEL操作
    查看>>
    输出保留12位小数的浮点数
    查看>>
    LnTbtbKLyv
    查看>>
    springboot ---> spring ioc 注册流程 源码解析 this.prepareContext 部分
    查看>>
    Java基础随笔
    查看>>
    图的存储结构
    查看>>
    图的遍历
    查看>>
    最小生成树的基本算法
    查看>>
    MySQL基础操作
    查看>>
    cf 1004 D Sonya and Matrix
    查看>>
    求幂塔函数
    查看>>
    机器学习常用性能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什么东西?...
    查看>>
    目标检测中常提到的IoU和mAP究竟是什么?
    查看>>