Laravel雄辩地给出了错误的结果

时间:2016-05-31 13:29:37

标签: php laravel eloquent

我有这段代码:

public function inbox()
{
    $id = Auth::user()->id;
    $bids = Bid::where('user_id',$id)
               ->where('status','0')
               ->orWhere('status','4')
               ->latest()->get();
               dd($bids);
    return view('rooms.inbox', compact('bids'));

}

这是我的数据库: enter image description here

但是当我运行它时我得到了这个结果:

enter image description here

我的Auth用户ID为8,但结果错了?为什么呢?

当我尝试的时候;  $bids = Auth::user()->bids()->get();然后我得到了正确的结果///

什么是问题?

2 个答案:

答案 0 :(得分:1)

你因为orWhere而得到这个意想不到的错误,你可以这样做

$bids = Bid::where('user_id',$id)
                       ->where(function ($query) {
                         $query->where('status','0')
                         ->orWhere('status','4');
                       })
                       ->latest()->get();

答案 1 :(得分:0)

您需要使用Advanced Where Clauses

您的查询应该

$bids = Bid::where('user_id',$id)
            ->where(function ($query) {
                $query->where('status', '0')
                    ->orWhere('status', '4');
            })->latest()->get();