Задать вопрос
@Sergo94Min
Разработчик

Какую связь применить для 4-х таблиц?

Есть 4 таблицы:
Дома (id name)
Пользователи (id name)
Дома_Пользователи (user_id home_id)
Телефоны (user_id home_id phone)

У пользователя может быть несколько домов
У пользователя может быть только один телефон для одного дома

Дома у пользователя через belongsToMany
belongsToMany(Home::class, 'users_homes')
Все ок. Привязываю $user->homes()->attach($home);

Но как теперь привязать телефон и какой метод использовать?
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
New_Horizons
@New_Horizons
Бред:
сделать у юзера отношение "phones" hasMany, потом:
$user->phones()->save(new Phone(['home_id' => $home->id, 'phone' => '+79999999999']));

или так:
Phone::create(['user_id' => $user->id, 'home_id' => $home->id, 'phone' => '+79999999999']);


Единственное, я не знаю будет ли это работать с составным ключом. В любом случае, я советую вам сделать для телефонов обычный ключ id, потому что eloquent не поддерживает составные ключи (из коробки и без костылей)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы