2016-05-31 4 views
0

У меня есть этот код:Laravel красноречиво дают неверный результат

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 - 8, но я получаю неправильные результаты? Зачем?

А ТАКЖЕ ЯЗЫК; $bids = Auth::user()->bids()->get();, тогда я получаю правильные результаты ///

Что такое проблема?

ответ

1

вы получаете эту неожиданную ошибку из-за orWhere, вы можете сделать как этот путь

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

Вы должны использовать Advanced Where Clauses

Ваш запрос хотел бы,

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