2017-02-18 18 views
1

Zum Beispiel ich habe 4 Tabellen:
Gebäude
ID, Titel, ...
Zimmer
id, building_id, Titel, ...
Unternehmen
ID, Titel, ...
companies_to_buildings
company_id, building_id

und ich möchte Unternehmen aus dem Raummodell zu bekommen.
Von Modell bauen i so etwas wiebelongsToMany auf nicht primäres Feld

class Building extends Model 
{ 
    public function companies(){ 
     return $this->belongsToMany('App\Company', 'company_building'); 
    } 
} 

oder

class Building extends Model 
{ 
    public function companies(){ 
     return $this->belongsToMany('App\Company', 'company_building', 'building_id', 'company_id'); 
    } 
} 

tun können, aber wenn ich dieses Modell im Raum zu tun, würde es nicht funktionieren. Es wird versucht, Zeilen in der Tabelle companies_to_buildings zu finden, wo companies_to_buildings_id = room.id. Wie kann ich Unternehmen aus dem Raummodell holen?

Antwort

0

Sie können von hasManyThrough

Beispiel machen:

public function series() 
{ 
return $this->hasManyThrough('Series', 'Product'); 
} 
+0

welche Modelle sollte ich in hasManyThrought verwenden?
public function Unternehmen() {return $ this-> hasManyThrough ('App \ Unternehmen', 'App \ Gebäude', 'BUILDING_ID', 'id', 'BUILDING_ID');}
erstellt Abfrage wie
wählen Unternehmen . *, building.building_id von firma inner join building auf building.building_id = company.id wo company.deleted = 0 und building.building_id in (5)
aber ich brauche so etwas wie:
select company. *, von company innerer beitreten companies_to_buildings auf companies_to_buildings.company_id = company.id wo company.deleted = 0 und companies_to_buildings.id in (5) –

Verwandte Themen