2016-05-10 16 views
2

Ich versuche eine Suchfunktion in meiner Laravel App zu erstellen. Ich möchte den Namen eines Tags suchen, das mit einer Pivot-Tabelle zu meinen Loops verknüpft ist. Aber ich habe den Fehler 'undefinierte Variable: query'Warum kann ich nicht auf meine Variable in dieser eloquenten Datenbankanrufmethode zugreifen?

Dies ist mein Controller-Methode:

public function search($query) { 

    $searchResult = Loop::whereHas('tags', function ($q) { 
       $q->where('name', 'LIKE', '%'. $query .'%'); 
      })->get(); 

    return Response::json($searchResult); 
} 
+0

Mögliches Duplikat von [PHP-Variablen in anon ymous Funktionen] (http://stackoverflow.com/questions/11420520/php-variables-in-anonymous-functions) –

Antwort

4

Sie sollten $query Variable in einen Verschluss mit use(), wie dies passieren:

$searchResult = Loop::whereHas('tags', function ($q) use ($query) { 
      $q->where('name', 'LIKE', '%'. $query .'%'); 
     })->get(); 

http://php.net/manual/en/functions.anonymous.php (siehe Beispiel 3)

+1

Ich war auf der Suche nach etwas für eine Weile! Ich kann dir nicht genug danken! –

+1

Ich bin froh, dass ich helfen konnte.) –

Verwandte Themen