2017-07-25 6 views
0

Hallo Ich möchte für die folgende SQL-Abfrage in laravel 5.4 eloquent bilden:
select A.*, concat(B.firstname, ' ', B.lastname) as clientname, C.category as category from payments A, clients B, categories C where A.client_id = B.id and A.category_id = C.idLaravel 5.4 Eloquent mehrere Tabellenabfrage

Alle Fremdschlüssel korrekt angegeben und die Modelle sind auch korrekt erstellt.

Mein Ziel ist es, alle Master-Namen wie category, client name, etc. direkt in den untergeordneten Tabellensatz zu bekommen.

+1

Haben Sie etwas versucht? Wo ist dein Code? – Godiez

+0

Sie können rohe Ausdrücke mit Laravel Query Builder verwenden, fügen Sie einfach Ihre rohe SQL-Abfrage in. Https://laravel.com/docs/5.4/queries#raw-expressions – ochhii

Antwort

0

Fügen Sie Ihre Zeile Abfrage in DB::row() und Druckdaten wie

folgende
$data= DB::row("select A.*, concat(B.firstname, ' ', B.lastname) as clientname, C.category as category from payments A, clients B, categories C where A.client_id = B.id and A.category_id = C.id")->get(); 

dd($data); 

, ob Ihre Anfrage direkt und ordnungsgemäß verwaltet ist Beziehung als seine Abrufen von Daten

0

Wenn Sie bereits Models als Warum Sie dies nicht tun Verwenden Sie ORM?

Verwenden Models,

payment::leftJoin('clients ','payments.client_id','=','clients.id') 
->leftJoin('categories ','payments.category_id ','=','categories .id')->select(['payment.*','categories.category',DB::raw("CONCAT(clients.firstname,' ',clients.lastname) as clientname")])->get();** 
+0

Vielen Dank, ich habe dies verwendet und es hat für mich funktioniert. – user3765227

0

Sie können dies versuchen:

DB::table('payments') 
->select('payments.*',DB::raw('CONCAT(clients.firstname," ",clients.lastname) as clientname'),categories.category) 
->join('clients','clients.id','=','payments.client_id') 
->join('categories','categories.id','=','payments.category_id') 
->get(); 

Hope this Hilfe für Sie !!!

Verwandte Themen