Okay, ich arbeite durch die Laravel 4-Dokumente, um eine Eins-zu-Viele-Beziehung zwischen zwei Modellen einzurichten. Offensichtlich sollte eine Seite hasMany() verwenden. Aber für die andere Seite, sollte ich hasOne oder earsTo verwenden? Ist es wichtig? Was ist der Unterschied? Warum existieren beide?Klären, wie man eine 1: n-Beziehung in Laravels beredten ORM einrichtet
Ich hatte gedacht, hasOne wäre für Eins-zu-Eins-Beziehungen, und gehörtTo für die eine Seite von Eins-zu-Viele. Aber in der Dokumentation, ein entsprechendes Modell für das Einfügen hier:
http://laravel.com/docs/eloquent#inserting-related-models
sie verwenden save()
die nur scheint in hasOne
und hasMany
Beziehungen anwesend zu sein, nicht in belongsTo
. Es sieht aus wie belongsTo
associate()
für den gleichen Zweck verwendet:
Vielleicht auf Ich brauche nur einigen allgemeinen Hintergrund, wenn belongsTo
vs. hasOne
, verwenden und warum belongsTo
associate()
während hasOne
verwendet verwendet save()
.
EDIT: Ich denke, mein Punkt der Verwirrung, dass (http://laravel.com/docs/eloquent#inserting-related-models) in der Dokumentation war, sie verwendet:
$post->comments()->save($comment);
wo ich hätte:
$comment->post()->associate($post);
Gibt es ein Vorteil, ein Weise oder die andere? Oder ist es nur eine Frage dessen, was im Kontext sinnvoll ist?
Dies half, weil ich meine Beziehungen rückwärts definiert hatte. Ich hatte den Tisch mit dem Fremdschlüssel als 'hasMany'. –