2016-07-18 9 views
0

Ich mache eine foreach-Schleife in Laravel Eloquent, wo ich in jeder foreach ich eine neue Where-Anweisung zu einer SQL-Abfrage hinzufügen muss. Ich habe dies versucht, aber es funktioniert nicht:Hinzufügen neuer WHERE-Anweisungen zu einer Abfrage in Laravel

  $list = Records::whereNull('deleted_at'); 

      foreach ($search as $keyword) 
      { 
       $list = $list->orWhere("title", 'like', '%'.$restriction.'%'); 
      } 
      $list = $list->get(); 

Dies sollte dann zurück:

$list = Records::whereNull('deleted_at')->orWhere("title", 'like', '%'.$restriction[0].'%')->orWhere("title", 'like', '%'.$restriction[1].'%')->get(); 

Aber es scheint nur alle Datensätze zurück. Beachten Sie, dass ich whereNull ('deleted_at') nur dort hinzufüge, da ich sonst orWhere ohne eine weitere where-Anweisung habe.

Gibt es eine Möglichkeit, dies zu tun?

Antwort

1

ändern $keyword anstelle von $restriction

 $list = Records::whereNull('deleted_at'); 

     foreach ($search as $keyword) 
     { 
      $list = $list->orWhere("title", 'like', '%'.$keyword.'%'); 
     } 
     $list = $list->get(); 
+1

wie ein Zauber funktioniert jetzt, Dank! –

Verwandte Themen