2016-08-03 10 views
0

Ich habe zwei Tabelle Benutzer und user_info. Ich muss diesen Tabellen beitreten und muss Daten von ihnen suchen. Es ist Fehler werfen als unbekannte Spalte.Ich habe eine Lösung mit DB-Abfrage, ist es möglich, Suche mit() -Methode in Controller und eloquente Beziehung im Modell zu tun.Laravel eloquent verbinden mehrere Tabelle und suchen Daten mit() Methode

Danke

+0

Warum gehst du nicht verwenden, zB: 'DB :: Tabelle ('Benutzer') -> join ('user_info', 'user_info.id_user', '=', 'users.id_user') -> get() '. Überprüfen Sie es und schreiben Sie zurück. –

Antwort

1

Es ist nicht möglich, Modelle durch ihre verwandten Modelle zu filtern Attribute mit mit() - Mit dieser Methode kann nur verwandte Modelle Filterung, nicht die ursprünglich Sie laden.

Um nach Attributen verwandter Modelle zu filtern, sollten Sie whereHas() Methode, z. um alle Benutzer zu laden, die Land Spaltensatz zu uk in ihren user_info Daten, die Sie das folgende tun könnte, haben:

$usersFromUK = User::with('user_info')->whereHas('user_info', function($query) { 
    $query->whereCountry('uk'); 
})->get();