Хорошо, я работаю над документами Laravel 4, чтобы настроить отношения "один ко многим" между двумя моделями. Очевидно, что одна сторона должна использовать hasMany(). Но для другой стороны, следует ли использовать hasOne или принадлежать? Это имеет значение? Какая разница? Почему обе существуют?
Я думал, что hasOne будет для взаимно-однозначных отношений, и принадлежит для одной стороны одного-ко-многим. Но в документах для вставки связанной модели здесь:
http://laravel.com/docs/eloquent#inserting-related-models
они используют save()
, который, кажется, присутствует только в отношениях hasOne
и hasMany
, а не в belongsTo
. Похоже, что belongsTo
использует associate()
для этой же цели:
Возможно, мне просто нужен общий фон, когда следует использовать belongsTo
vs. hasOne
, и почему belongsTo
использует associate()
, а hasOne
использует save()
.
EDIT: Я предполагаю, что моя точка зрения заключалась в том, что в документах (http://laravel.com/docs/eloquent#inserting-related-models) они использовали:
$post->comments()->save($comment);
где я бы использовал:
$comment->post()->associate($post);
Есть ли преимущество для одного или другого? Или это просто вопрос о том, что имеет смысл в контексте?