2016-05-31 19 views
0

Ich habe diesen Code:Laravel beredt falsches Ergebnis geben

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')); 

} 

und dies ist meine Datenbank: enter image description here

Aber wenn ich es laufen bekomme ich dieses Ergebnis:

enter image description here

meine Auth Benutzer-ID ist 8, aber ich bekomme falsche Ergebnisse? Warum?

ALSO wenn ich es versuche; $bids = Auth::user()->bids()->get(); dann bekomme ich richtige Ergebnisse ///

Was ist das Problem?

Antwort

1

Sie diese unerwartete Fehler werden immer wegen orWhere, können Sie wie auf diese Weise tun

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

Sie benötigen sollten Advanced Where Clauses

Ihre Abfrage verwenden möchten,

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