通过比较日期过滤视图内的 laravel 集合?

Filter a laravel collection inside a view by comparing dates?

我试图通过比较到期日期和今天的日期来过滤一组对象,但我无法让它正常工作。任何人都可以看一下代码。我确定我在这里遗漏了一些东西。我到处搜索并找到了很多示例,但 none 正在运行。

这很好地符合要求,但是对于 9 个对象的列表,其中 3 个对象的到期日期设置为 2012 年,它return 没有来自集合的任何结果。

控制器

public function classifieds()
{   
    $myclassifieds = Auth::user()->classifieds;
    return view('account.classifieds')->with(['allclassifieds'=>$myclassifieds]);
}

查看

@if(count($allclassifieds->where('expired_on','<', Carbon\Carbon::now() ) ) > 0)
//Something here
@endif

直接访问值expired_on

@foreach($allclassifieds as $classified)
    @if($classified->expired_on > Carbon\Carbon::now())
        // show classified
    @endif
@endforeach

您可以通过将 expired_on 属性 添加到模型中的 $dates 数组来使 expired_on 默认成为 Carbon 实例:

protected $dates = ['created_at', 'updated_at', 'expired_on'];

现在expired_on总是returns一个Carbon实例