Здравствуйте. Подскажите, кто может. У меня есть две связи - компании продавцы и компании застройщики
public function companies_builder() {
return $this->belongsToMany('App\Models\Company', 'pivot_company_buildings_builder', 'building_id', 'company_id');
}
public function companies_seller() {
return $this->belongsToMany('App\Models\Company', 'pivot_company_buildings_seller', 'building_id', 'company_id');
}
Мне нужно сделать связь которая объединяет эти две таблицы. По типу:
public function all_buildings()
{
return ...
}
Помогите кто знает. Как это сделать?
На мой взгляд лучшим решением будет создание одной таблицы
pivot_buildings_companies, в которую помимо полей внешних ключей добавить поле указывающее на тип связи (застройщик/продавец)
Тогда в классе Building вы сможете описать метод:
public function companies() {
return $this->belongsToMany('App\Models\Company', 'pivot_buildings_companies', 'building_id', 'company_id');
}
public function companies_builder() {
return $this->companies()->wherePivot('type', 'builder');
}
public function companies_seller() {
return $this->companies()->wherePivot('type', 'seller');
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей