Исследование отношений «один-к-одному» в Laravel: методы и примеры

В Laravel отношение «один к одному» относится к отношениям между двумя таблицами базы данных, где каждая запись в одной таблице связана ровно с одной записью в другой таблице. Laravel предоставляет несколько методов для определения отношений «один к одному» и работы с ними. Вот некоторые из часто используемых методов с примерами кода:

  1. hasOne(): этот метод определяет связь «один к одному» в текущей модели.
// User model
public function phone()
{
    return $this->hasOne(Phone::class);
}
  1. belongsTo(): ​​этот метод определяет обратную связь «один-к-одному».
// Phone model
public function user()
{
    return $this->belongsTo(User::class);
}
  1. with(): этот метод позволяет быстро загружать связи для оптимизации запросов к базе данных.
$users = User::with('phone')->get();
foreach ($users as $user) {
    echo $user->phone->number;
}
  1. create(): этот метод создает новый экземпляр связанной модели.
$user = User::find(1);
$phone = $user->phone()->create([
    'number' => '1234567890',
]);
  1. save(): этот метод сохраняет связанный экземпляр модели.
$user = User::find(1);
$phone = new Phone(['number' => '1234567890']);
$user->phone()->save($phone);
  1. update(): этот метод обновляет связанный экземпляр модели.
$user = User::find(1);
$user->phone()->update(['number' => '0987654321']);
  1. delete(): этот метод удаляет связанный экземпляр модели.
$user = User::find(1);
$user->phone()->delete();