如何在laravel中输出奇数行和偶数行

5vf7fwbs  于 2023-08-08  发布在  其他
关注(0)|答案(3)|浏览(131)

我有一个项目,我从数据库中提取帖子,并在主页视图上呈现。就像博客。(在主页上,我限制这3个职位)
我在表中有6行,并希望根据奇数行和偶数行设置输出样式。

这是我的控制器:

public function index()
{
   $counter = Post::count();
   $posts= DB::table('posts')->orderBy('id', 'DESC')->limit(3)->get();

    return view('home',compact('posts','counter')); 
}

字符串
我希望偶数行具有<div class="even">,奇数行具有<div class="odd">
dd$counter上时,我得到的值是6。这是正确的。“我在表中有6行。
我目前正在尝试的是基于我找到的其他文章:

@foreach ($posts as $post)
@if($counter % 2 == 0)
<div class="even">{{$post->title}}</div>
@else
<div class="odd">{{$post->title}}</div>
@endif


这不起任何作用。仍将行输出为6,5,4,3,2,1
那么,我该如何在Foreach循环中编写IF语句来表示...

if ($counter == odd)
<div class="odd">
else
<div class="even">


我要找的订单是:

  • 奇数
  • 偶数
  • 偶数
u91tlkcl

u91tlkcl1#

$counter是一个静态变量,因此调用$counter % 2 == 0将始终显示相同的结果。

如果您使用的是Laravel 5.4+,则@foreach()中包含一个$loop变量。所以你可以在循环中访问你的mod分区。
这里是Laravel 5.4+的示例

@foreach ($posts as $post)
    @if($loop->iteration % 2 == 0)
        <div class="even">{{$post->title}}</div>
    @else
        <div class="odd">{{$post->title}}</div>
    @endif
@endforeach

字符串

yeotifhr

yeotifhr2#

Laravel 5.8.5在Blade循环变量中添加偶数和奇数布尔标志

现在您可以用途:
$loop->even或$loop->odd
而不是
$loop->迭代% 2
Reference link

chy5wohz

chy5wohz3#

您需要在每次迭代时递增计数器。

@php
  $counter = 1;
@endphp

@foreach ($posts as $post)
  @if($counter % 2 == 0)
   <div class="even">{{$post->title}}</div>
  @else
   <div class="odd">{{$post->title}}</div>
  @endif
  @php 
   $counter++;
  @endphp
@endforeach

字符串

相关问题