2016-11-12 5 views
2

Ich versuche, die Bücher zu bekommen, wo die Autoren aus einem bestimmten Land sind, denn nun meine Frage wie folgt aussieht:Laravel Eloquent erhalten spezifische Beziehung

$books->with('author')->where('country', '=', 'FR'); 

aber die wo auf Bücher angewendet und nicht auf Autoren

Hilfe?

Antwort

3

Sie müssen whereHas() dafür verwenden. Der folgende Code sollte es tun:

$country = 'FR'; 
$books = Book::with('author')->whereHas('author', function($query) use ($country) { 
    $query->where('country', '=', $country); 
})->get(); 

Diese finden Sie alle Bücher geben, die einen ähnlichen Autor haben, dieLand Spalte auf FR hat.

+0

Vielen Dank! Kann ich ein anderes Argument an die Schließung weitergeben? Ich habe versucht, aber ich habe einen Fehler Fehlendes Argument 2 – TheShun

+0

Was möchten Sie weitergeben? Sie können das nicht wirklich tun, aber ich denke, was Sie meinen, ist die Verwendung von Variablen außerhalb des Bereichs innerhalb der Schließung. Ich habe die Antwort aktualisiert –

+0

Ja "verwenden" machte es funktioniert, danke! – TheShun

Verwandte Themen