如何在 Laravel 中显示限时产品报价

Posted

技术标签:

【中文标题】如何在 Laravel 中显示限时产品报价【英文标题】:How to Display product offer for a limited period in Laravel 【发布时间】:2021-01-27 14:49:19 【问题描述】:

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

这就是我的 UI 的样子

这是用户可以创建新的子类别并选择特价日期的地方

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

 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

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

我该如何解决?

【问题讨论】:

我已经发布了答案请看一下 @KamleshPaul 我收到此错误 Illuminate\Support\Carbon 类的对象无法转换为 int 我更新了代码现在检查 【参考方案1】:

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

@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

【讨论】:

以上是关于如何在 Laravel 中显示限时产品报价的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中获取所有平均评分的数据

如何在 Laravel 7 中使用 Livewire 显示存储路径中的图像

如何在新页面中显示所选产品

如何将带参数的 Laravel 模型函数调用到 Vuejs 模板中?

Laravel,如何在 HTML 表格中输出相同 ID 的多条记录?

自制智能镜之——产品创建及开发环境搭建篇(限时活动进行中)