Laravel Blade 中的三元以应用行 class 名称

Ternary in Laravel Blade to apply row class names

我有一份我正在尝试做的报告,但我想让这些行交替显示颜色。这是我尝试过的方法,但它不起作用。实现这一目标的正确方法是什么?

    <div class="row">
    {{$rowOrder = "even"}}
    @foreach($data as $row)
            {{ $rowLine = ($rowOrder = "odd" ? 'even' : 'odd') }}
            <div class="col-sm-4 repColumn {{$rowOrder}}">
                <span>{{$row->adm_referraldate}}</span>
                <span>{{$row->adm_number}}</span>
            </div>
            <div class="col-sm-4 repColumn {{$rowOrder}}">
                <span>{{$row->dmg_nhsnumber}}</span>
                <span>{{$row->dmg_firstname." ".$row->dmg_surname}}</span>
                <span>{{$row->dmg_dateofbirth." - (".$row->dmg_ageyears.")"}}</span>
                <span>{{$row->dmg_sex}}</span>
            </div>
            <div class="col-sm-4 repColumn {{$rowOrder}}">
                <span>{{$row->dmg_nhsnumber}}</span>
                <span>{{$row->dmg_firstname." ".$row->dmg_surname}}</span>
                <span>{{$row->dmg_dateofbirth." - (".$row->dmg_ageyears.")"}}</span>
                <span>{{$row->dmg_sex}}</span>
            </div>
    @endforeach
    </div>
{{ $rowLine = ($rowOrder = "odd" ? 'even' : 'odd') }} 

可能应该是

 {{ $rowLine = ($rowOrder == "odd" ? 'even' : 'odd') }}

替换

{{ $rowLine = ($rowOrder = "odd" ? 'even' : 'odd') }}

<?php $rowOrder = ($rowOrder == "odd") ? 'even' : 'odd'; ?>

或者如果您使用的是 Laravel 5.2 或以上

@php($rowOrder = ($rowOrder == "odd") ? 'even' : 'odd')

对行 {{$rowOrder = "even"}}

执行相同的操作

如果您使用 {{$rowOrder = "even"}} 它将回显结果。

尝试从 foreach 循环中获取密钥并 运行 ($key % 2) 基本上奇数mod 2总有余数

@foreach ($rows as $key => $row) 
   <div class="@if ($key > 0 && $key % 2) odd @else even @endif">
   </div>
@endforeach 

这是一个对我有用的例子:我把转储输出留在里面,这样你就可以看到实际的数字。希望它能帮助遇到此问题的任何人:)。编辑:不要忘记在 css 文件中为 .odd 和 .even 添加颜色!

@if(!empty($names))

{{-- SET VARIABLE + HIDE IT --}}
<div class="hide">{!! $number = 0 !!}</div>

   @foreach($names as $n)

    {{ dump($number) }}

    <div class="{!! $number % 2 == 0 ? 'odd' : 'even'  !!}">

        {{-- UP VARIABLE + HIDE IT --}}
        <div class="hide">{!! $number++ !!}}</div>

        {{-- DISPLAY CONTENT —}}
        {{ $n }}

    </div>

   @endforeach
@endif

您可以使用取模运算来确定索引是奇数还是偶数:

$isEven = 指数 %2

如果你将它与 PHP 三元运算符结合起来,你会得到这个

{{ $loop->index % 2 ? 'odd': 'even' }}

https://davidwalsh.name/php-shorthand-if-else-ternary-operatorshttps://en.wikipedia.org/wiki/Modular_arithmetic

这是一个非常简单的解决方案:

    @php $count = 0; @endphp
    @foreach($data as $row)
        <div class="{{ ++$count % 2 ? 'odd': 'even' }}">
            {{ $row->name }}
        </div>
    @endforeach

使用变量$loop documentation ($loop->even laravel 5.8, or ($loop->iteration % 2)laravel< 5.8 )

@foreach ($users as $user)
    @if ($loop->even)
        This is even.
    @else 

    @endif
@endforeach

@foreach ($listObject as $Object)
                <tr class="{{ ($loop->iteration % 2) ? 'odd' : 'even' }}">
@endforeach