Laravel if语句用于各种编号项目以更改样式

时间:2019-05-15 00:42:50

标签: php laravel if-statement

我有一个这样布置的产品画廊:

gallery of products

<div class="row no-gutters bg-light">
                @foreach ($products as $product)
                <!-- Column 1 -->
                <div class="col-6 @if(count($products) === 1 || 4 || 5) card-w-bg @endif">
                    <div class="row no-gutters">
                        <!-- Column 1-a --> 
                        <div class="col-6 showcase-col">
                            <div class="overlay"></div>
                            <div class="showcase-hero showcase-text">
                                <h2 class="card-title mb-4"><a href="">{{ $product->name }}</a></h2>
                                <h3 class="card-subtitle text-muted">{{ $product->details }}</h3>
                                <h4 class="mb-3">{{ $product->presentPrice() }}</h4>
                                <p class="card-text mb-4 d-none d-md-block">Lorem ipsum dolor sit amet consectetur adipisicing elit. A

if语句仅需要将暗灰色bg添加到项目1、4和5。

3 个答案:

答案 0 :(得分:1)

如果1、4和5是产品ID,则可以:

@if($product->id === 1 || $product->id === 4 || $product->id === 5) card-w-bg @endif

如果1,4和5是循环中的位置:

@if($loop->iteration === 1 || $loop->iteration === 4 || $loop->iteration === 5) card-w-bg @endif

答案 1 :(得分:0)

如果条件错误,您将采用的方式,正确的方式如下所示:

@if(count($products) == 1 || count($products) == 4 || count($products) == 5) //change over here
//some code 
@endif

因此,替换

 <div class="col-6 @if(count($products) === 1 || 4 || 5) card-w-bg @endif">

到以下:

<?php $reqArr=[1,4,5]; ?>
<div class="col-6 @if(in_array(count($products),$reqArr)) card-w-bg @endif">

答案 2 :(得分:-1)

您可能想使用laravel的foreach创建的loop variable,以便可以访问当前索引,而不是在count上使用$products,因为它将始终返回相同的值。因此,您可以执行以下操作:

<div class="col-6 {{ $loop->index == 0 || 3 || 4 ? 'card-w-bg' : ''}}">