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?
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) –