Это похоже на большую работу для базы данных: пойти и найти user_id в таблице Phones по сравнению с phone_id, уже присутствующим в модели User.
Что выздесь упомянуто то, что известно как отношение BelongsTo, и на самом деле это обратное HasOne или HasMany. Это означает, что если у пользователя есть один или несколько телефонов, телефон автоматически принадлежит пользователю через внешний ключ user_id
. Это также означает, что телефон будет принадлежать только одному пользователю.
Вы совершенно правы в сходстве между HasOne и HasMany, поскольку они используют внешние ключи точно таким же образом. Фактически, единственное реальное отличие в Eloquent заключается в том, что для HasOne он возвращает первое совпадение в ссылочной таблице, а не все доступные совпадения, как в HasMany.
Обратите внимание, что ваш третий пункт не совсем корректен, поскольку вполне возможно, что user_id
в таблице phones
не указывает на существующую запись в users
, если в вашей базе данных нет ограничений, которые заставляют ваш внешний ключ указывать на существующую запись.