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

时间:2019-02-08 18:47:49

标签: php laravel

我有一个项目,我要从数据库中提取帖子并在主页视图上进行渲染。就像博客一样。 (在主页上,我限制为3个帖子)

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

这是我的控制人:

SELECT AppUserName, UserFirstName, UserLastName
FROM ApplicationUsers
WHERE @AppUserName = AppUserName

我希望偶数行具有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时,得到的值为6。这是正确的。表中有6行。

根据我发现的其他文章,我目前正在尝试的内容:

$counter

这什么也没做。仍将行输出为6,5,4,3,2,1

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

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

我要寻找的顺序是:

  • 奇数
  • 甚至
  • 奇数
  • 甚至

3 个答案:

答案 0 :(得分:6)

$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

答案 1 :(得分:4)

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

现在您可以使用:

$ loop->偶数或$ loop->奇数

代替

$ loop->迭代%2

Reference link

答案 2 :(得分:1)

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

@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