10

さて、私は Laravel 4 のドキュメントに取り組んで、2 つのモデル間に 1 対多の関係を設定しています。明らかに、片側で hasMany() を使用する必要があります。しかし、反対側では、hasOne と belongsTo を使用する必要がありますか? それは問題ですか?違いは何ですか?なぜ両方が存在するのですか?

hasOne は 1 対 1 の関係用で、begsTo は 1 対多の片側用だと思っていました。しかし、ドキュメントでは、ここに関連モデルを挿入するために:

http://laravel.com/docs/eloquent#inserting-related-models

彼らは、 ではなくと の関係save()にのみ存在するように見えるものを使用しています。同じ目的で使用するように見えます:hasOnehasManybelongsTobelongsToassociate()

https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php#L188

belongsToいつvs.を使用するhasOneか、なぜwhile をbelongsTo使用するかについての一般的な背景が必要なだけかもしれません。associate()hasOnesave()

編集:私の混乱のポイントは、ドキュメント( http://laravel.com/docs/eloquent#inserting-related-models )で、彼らが使用したことだったと思います:

$post->comments()->save($comment);

私が使用した場所:

$comment->post()->associate($post);

いずれかの方法に利点はありますか?それとも、文脈の中で何が意味を成すかという問題だけですか?

4

1 に答える 1