laravel 5.6查询构建器,其中orWhere不起作用

时间:2018-03-29 08:50:49

标签: php mysql laravel-query-builder laravel-5.6

我有一个页面,应该显示实时和过去的论文,但是当实时论文到期时,不应加载实时论文,只应根据时间显示过去的论文。 当前使用的查询,

$curdate=Carbon::now();
$papers = DB::table('papers')
        ->join('payments','papers.id','=','payments.paper_id')
        ->join('tutors','papers.tutor_id','tutors.id')
        ->select('papers.*','tutors.name')
        ->where('papers.id','payments.paper_id')
        ->where('papers.type','=','Normal')
        ->orWhere('papers.live_end_time', '>=' ,$curdate)
        ->where('payments.user_id',$id)
        ->get();

这显示了实时论文,但没有过去的论文。当时间到期时,现场报纸被隐藏起来。当我更改whereorWhere条款的位置时,会显示过去的论文,但不会显示实时论文,为什么会发生这种情况,这是他们的解决方法。

1 个答案:

答案 0 :(得分:0)

我认为你为orWhere声明做了错误的条件请尝试使用->orWhere('papers.live_end_time', '<=' ,$curdate)这样它可以用于你想要实现的任务