我试图使用一个先进的位置来使用包含日期比较的Laravel Eloquent来提取条目。虽然我找到了另一种方法来运行日期比较(在我取消记录后的另一个foreach),但它仍然让我觉得为什么这不起作用。只是好奇是否有其他人对此有一些反馈。这就是我所拥有的:
$surveys = Survey::where('is_published', 1)
->whereNull('closes_at')
->orWhere('closes_at', '>', date('Y-m-d H:i:s'))
->whereHas('assigned', function($q){
$q->where('employee_id', Session::get('employee_id'));
})->orWhere('assigned_to_all', 1)
->orderBy('updated_at', 'desc')
->orderBy('created_at', 'desc')
->get();
所以我试图做的是拉出所有的调查:
如果我从数据库中取出它,那很好。只是无法使用Eloquent来吸引正确的人。我尝试了几个不同的日期调用,但没有一个正在工作。
任何人都有任何提示吗?
答案 0 :(得分:1)
您正在调查'is_published'= 1并且(closes_at为null或closes_at>当前时间或assigned_to_all = 1或专门分配给它们)的调查。试试这个:
$surveys = Survey::where('is_published', 1)
->where(function($query){
$query->whereNull('closes_at')
->orWhere('closes_at', '>', date('Y-m-d H:i:s'));
})
->where(function($query){
$query->whereHas('assigned', function($q){
$q->where('employee_id', Session::get('employee_id'));
})
->orWhere('assigned_to_all', 1);
})
->orderBy('updated_at', 'desc')
->orderBy('created_at', 'desc')
->get();