如何在Laravel中显示有限期间的产品报价

问题描述

我需要显示为产品状态,该状态对于从X日期到X日期的所选日期是特殊的,

这是我的UI外观

enter image description here

在这里用户可以创建新的子类别并选择特价日期

enter image description here

这是我在控制器中的显示功能

 public function show(Category $category)
{
    // ! Search Filter
    $filter = new SearchFilter();
    $filter->where('parent_id','=',$category->id);

    // ! Date Filter (Today)
     $day = Carbon::Now();
     $today = $day->toDateString();
   

    return view('manage.categories.show')->with([
        'pageTitle' => $category->name,'allItems' => $this->dataRepo->search([],$filter),'isDestroyingEntityAllowed' => $this->isDestroyingEntityAllowed,'entity' => $category,'today'=>$today,]);
}

这是我检查日期的刀片服务器

@foreach ($allItems as $item)
            <td>
                @if ($item->special_start == $today || $item->special_end == $today)
                    Special
                    @else
                    Regular
                @endif
            </td>

    @endforeach

但是只有当日期与开始日期和结束日期匹配时,它才会显示特殊,开始日期和结束日期之间的日期将显示常规

我该如何解决

解决方法

不建议使用Carbonview中编写逻辑,但是您可以将其移至控制器中

@foreach ($allItems as $item)
<td>
    @php
        $first = \Carbon\Carbon::create($item->special_start);
        $second = \Carbon\Carbon::create($item->special_end);
        $diff = now()->between($first,$second);
    @endphp
    @if ($diff)
    Special
    @else
    Regular
    @endif
</td>
@endforeach

参考链接https://carbon.nesbot.com/docs/#api-comparison

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...