Dobra, pracuję nad dokumentami Laravel 4, aby ustawić relację jeden do wielu między dwoma modelami. Oczywiście jedna strona powinna używać hasMany(). Ale z drugiej strony, czy powinienem użyć hasOne czy belongsTo? Czy to ma znaczenie? Jaka jest różnica? Dlaczego oba istnieją?Wyjaśnij, jak skonfigurować relację jeden do wielu w Eloquent ORM Laravel
Myślałem, że będzie dla relacji jeden-do-jednego i należy do jednej strony jeden-do-wielu. Ale w docs, do wkładania pokrewnego modelu tutaj:
http://laravel.com/docs/eloquent#inserting-related-models
są one za pomocą save()
który wydaje się być obecne tylko w hasOne
i hasMany
relacji, a nie w belongsTo
. Wygląda na to belongsTo
wykorzystuje associate()
do tego samego celu:
Może po prostu trzeba pewne ogólne tło na kiedy używać belongsTo
Vs. hasOne
i dlaczego belongsTo
wykorzystuje associate()
podczas hasOne
wykorzystuje save()
.
EDIT: Chyba mój punkt zamieszania było to, że w docs (http://laravel.com/docs/eloquent#inserting-related-models), używali:
$post->comments()->save($comment);
gdzie użyłem:
$comment->post()->associate($post);
Czy istnieje przewaga jednego sposób czy inny? A może chodzi tylko o to, co ma sens w kontekście?
To pomogło, bo miałem moje relacje zdefiniowane w tył. Miałem stół z kluczem zagranicznym jako "hasMany". –