Например у меня есть 4 таблицы:
зданий
идентификатор, название, ...
номера
идентификатор, building_id, название, ...
компаний
идентификатор, название, ...
companies_to_buildings
company_id, building_id
и я хочу получить компании из модели комнаты.
Из построения модели я могу сделать что-то вродеbelongsToMany на не первичного поля
class Building extends Model
{
public function companies(){
return $this->belongsToMany('App\Company', 'company_building');
}
}
или
class Building extends Model
{
public function companies(){
return $this->belongsToMany('App\Company', 'company_building', 'building_id', 'company_id');
}
}
, но если я это сделать в комнате модели, она не будет работать. он попытается найти строки в таблице company_to_buildings, где company_to_buildings.building_id = room.id. как я могу получить компании из модели комнаты?
, какие модели следует использовать в hasManyThrought?
функция компания общественной() {вернуть $ this-> hasManyThrough ('App \ Компания', 'App \ Строительство', 'building_id', 'идентификатор', 'building_id');}
создает запрос как
выберите компанию . *, building.building_id от компании inner join building на building.building_id = company.id где company.deleted = 0 и building.building_id в (5)
, но мне нужно что-то вроде:
выбрать компанию. *, от компании внутреннее объединение company_to_buildings на company_to_buildings.company_id = company.id где company.deleted = 0 и company_to_buildings.building_id в (5) –