通过无效的日期过滤记录 laravel
Filter record through dates not working laravel
我的 table
中有一个 expiry_date(类型=日期)列
$currentDate = date('Y-m-d');
$Data = Post::whereDate('expiry_date','<=',$currentDate)->where(['status' => 'active'])->orWhere(['p_id' => 3])->select('id','title','status','p_id','expiry_date')->orderBy('id', 'DESC')->get();
如果当前日期大于到期日期,我想过滤数据,那么不应显示这些记录,但在我的情况下,我仍在获取记录。
任何解决方案谢谢。
您必须在闭包中分组 orWhere
子句。闭包中的分组就像真实查询中的 ()
。
$Data = Post::whereDate('expiry_date','<=',$currentDate)
->where(function($query){
return $query
->where(['status' => 'active'])
->orWhere(['p_id' => 3]);
})
->select('id','title','status','p_id','expiry_date')
->orderBy('id', 'DESC')
->get();
但是,因为我不了解你的项目 - 我可能无法分组。
我的 table
中有一个 expiry_date(类型=日期)列$currentDate = date('Y-m-d');
$Data = Post::whereDate('expiry_date','<=',$currentDate)->where(['status' => 'active'])->orWhere(['p_id' => 3])->select('id','title','status','p_id','expiry_date')->orderBy('id', 'DESC')->get();
如果当前日期大于到期日期,我想过滤数据,那么不应显示这些记录,但在我的情况下,我仍在获取记录。
任何解决方案谢谢。
您必须在闭包中分组 orWhere
子句。闭包中的分组就像真实查询中的 ()
。
$Data = Post::whereDate('expiry_date','<=',$currentDate)
->where(function($query){
return $query
->where(['status' => 'active'])
->orWhere(['p_id' => 3]);
})
->select('id','title','status','p_id','expiry_date')
->orderBy('id', 'DESC')
->get();
但是,因为我不了解你的项目 - 我可能无法分组。