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

ech*_*cho 3 php laravel

我有一个项目,我从数据库中提取帖子并在主页视图上呈现.像博客一样.(在主页上我将此限制为3个帖子)

我在表中有6行,并希望根据ODD和偶数行设置输出样式.

这是我的控制器:

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

    return view('home',compact('posts','counter')); 
}
Run Code Online (Sandbox Code Playgroud)

我想要偶数行<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
Run Code Online (Sandbox Code Playgroud)

这没有任何作用.仍将行输出为6,5,4,3,2,1

那么如何在我的Foreach循环中编写IF语句来说...

if ($counter == odd)
<div class="odd">
else
<div class="even">
Run Code Online (Sandbox Code Playgroud)

我正在寻找的订单是:

  • 甚至
  • 甚至

Khu*_*hbu 9

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

现在您可以使用:

$loop->even 或 $loop->odd

代替

$loop->迭代% 2

参考链接


N M*_*rin 7

$counter是一个静态变量,因此调用$counter % 2 == 0将始终显示相同的结果.如果您使用的是5.4+,则$loop包含一个变量@foreach().所以你可以在循环中访问你的mod分区.

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