【问题标题】:Laravel foreach each item increment by 3Laravel foreach 每个项目增加 3
【发布时间】:2023-04-11 09:44:01
【问题描述】:

我真的不知道这篇文章的标题并尝试搜索,但我不知道我应该把它放在什么关键字上,所以我创建了一个新的,但如果已经有类似的帖子。可以链接吗?我的问题是如何在下图中实现这个目标。

@php $i = 0; @endphp
@foreach ($posts as $key => $post)
 @if ($key % 2 === 0)
  <div class="row">
   <div class="col-md-4"><img src="{{ $post->image }}" /></div>
   <div class="col-md-8">
    - {{ $i+=1 }}
    - {{ $i+=2 }}
    - {{ $i+=3 }}
   </div>
  </div>
 @else
 @endif
@endforeach

bootstrap 的备用类正在工作,但每个值会增加的数字是我不知道如何完成它。

【问题讨论】:

  • 无论你想做什么,这都是不好的方法。视图用于显示内容,而使用 @php 仅用于极端情况。在控制器中预先计算数字并显示它们。无论哪种方式,你能否分享更大的图片我不明白你想要接近什么。
  • @Kyslik 在提供的图像上,每一行都有每个细节,包括图像。每边的数字只是一个普通数字,但按 3 计数。所以数组的第一行将显示数字为 1、2 和 3,然后数组的第二行将继续第一行的数字,即 4, 5和6等等。你明白我的意思吗?

标签: php laravel foreach laravel-blade laravel-5.6


【解决方案1】:

我不熟悉 Larval 语法,但对于逻辑,我认为您应该有更多类似的东西:

@php $i = 0; @endphp
@foreach ($posts as $key => $post)
 @if ($key % 2 === 0)
  <div class="row">
   <div class="col-md-4"><img src="{{ $post->image }}" /></div>
   <div class="col-md-8">
    - {{ ++$i }}
    - {{ ++$i }}
    - {{ ++$i }}
   </div>
  </div>
 @else
  <div class="row">
   <div class="col-md-8">
    - {{ ++$i }}
    - {{ ++$i }}
    - {{ ++$i }}
   </div>
   <div class="col-md-4"><img src="{{ $post->image }}" /></div>
  </div>
 @endif
@endforeach

我更改的注意事项: 1. 每个号码将$i 加一,否则您将跳过号码 2.当$key为NOT事件时,将图片打印在另一面。

再一次,我不熟悉 larval 语法,我也不知道你的 $posts 数组的键/值是什么(如果你的键不是交替的偶数/奇数,你就没有图像在左右之间来回切换)。

希望这能给你一些方向。

【讨论】:

  • 啊,我明白你的意思,谢谢你,它完全可以正常工作。非常感谢!编辑:出于某种原因,我不能在一分钟内接受你的回答。我会等一下接受它:) 谢谢
  • 旁注:如果$key 不是关联数组的一部分,而是数字的一部分(例如在集合中就是这种情况),您可以避免初始化变量$i 并使用$key + 1 .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 2021-08-09
  • 2021-08-18
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
相关资源
最近更新 更多