如何突出显示根据表值的记录?

时间:2018-10-08 12:59:35

标签: php mysql laravel

我在Web应用程序中使用Laravel 5.6mysql。在我的应用程序中,我有一个名为vehicles的表,如下所示,

id   name   number   adtype   
----------------------------
1   car     123     1
2   van     256     0
3   car     248     0
4   van     159     1
5   car     158     1
etc

我正在VehicleController上显示以下数据

public function index(){
    $vehicles = Vehicle::with('uploads')->get();
    return view('vehicles.index')->withVehicles($vehicles);
}

上传是相关的表格,其中包含车辆图像

我的index.blade.php就是这样

<div class="col-md-7 col-md-offset-1">
 @forelse( $vehicles as $vehicule )
     @if( $vehicule->uploads->count() > 0 )
     <a href="{{ route('vehicles.show', $vehicule->id) }}">
     @php
     $upload = $vehicule->uploads->sortByDesc('id')->first();
     @endphp
     <div style="border-style: solid; color: black; ">
         <img src="/images/{{ $upload->resized_name }}" height="150" width="250"></a>
     @endif
</div>

工作正常。但现在我需要在vechicles表中与广告类型值相关的突出显示广告为1。怎么办?

3 个答案:

答案 0 :(得分:1)

尝试

 <div class="col-md-7 col-md-offset-1">
    @forelse( $vehicles as $vehicule )


    @if( $vehicule->uploads->count() > 0 )
    <a href="{{ route('vehicles.show', $vehicule->id) }}">
        @php
        $upload = $vehicule->uploads->sortByDesc('id')->first();
        @endphp
        @if($vehicule->adtype == 1)
        <div style="border-style: solid; color: black; ">
            <img src="/images/{{ $upload->resized_name }}" height="150" width="250"></a>
        </div>
         @else
        <div style="border-style: solid; color: blue; ">
            <img src="/images/{{ $upload->resized_name }}" height="150" width="250"></a>
        </div>
        @endif
    @endif
</div>

答案 1 :(得分:1)

我不确定自己的问题是否正确,但是仅使用if来确定adtype是否等于1并处理div的类的问题在哪里?或样式属性不同?

<div style="color: {{ $vehicule->adtype === 1 ? 'black' : 'blue' }}">

除此之外:您不应该懒加载模板中的内容;这不是模板的目的,这是控制器的任务。将eager loadingproper relation一起使用。

注意:您也可以-或应该-type cast属性也可以等同于其原始用途并防止误导性比较。

在您的情况下,adtype看起来像布尔值,因此您可以将其添加到模型的$cast属性中:

'adtype' => 'boolean',

答案 2 :(得分:0)

我不确定我是否理解您的所有代码,但是您会想要这样的东西:

在您的CSS中:

<style>
.highlight {
   ... whatever ...
}
</style>

然后,在您的刀片中

@if( $vehicule->adtype == 1 )
<span class="highlight"> ...... whatever ..... </span>
@endif

或者,如果您要内联,

<span class="{{ ($vehicule->adtype == 1) ? 'highlight' : '' }}">