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-operators
和
https://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
我有一份我正在尝试做的报告,但我想让这些行交替显示颜色。这是我尝试过的方法,但它不起作用。实现这一目标的正确方法是什么?
<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-operators 和 https://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