Ich arbeite an einem CRM, wo ich ein Benutzermodell habe, die viele zu viele Beziehungen mit anderen Benutzern und eine Art von Beziehung haben kann, die durch die Pivot-Tabelle definiert ist.Laravel 5.3 Viele zu viele Beziehung mit demselben Modell
Zum Beispiel:
Tim -> Tom (Mitarbeiter)
Tim -> Steve (Familienmitglied)
Tim -> Jon (Nachbarn)
In meinem Benutzer Modell Ich habe das, wo ich user1_id und user2_id aus der Pivot-Tabelle als Fremdschlüssel verwende:
public function relationships()
{
return $this->belongsToMany(User::class,null,'user1_id','user2_id')->withTimestamps()->withPivot('type');
}
Was in einer Richtung funktioniert. Also, wenn ich das anrufe:
Das funktioniert wie erwartet und ich werde Tom Steve und Jon als Ergebnisse bekommen. Wenn ich nun Toms ID in dieser Abfrage verwenden würde, wird Tim nicht als eine Beziehung zurückkommen, da es nach user1_id sucht, wenn Toms ID in user2 gespeichert ist.
Gibt es eine Lösung, die Datensätze zu ziehen, wenn es eine Übereinstimmung von einem Fremdschlüssel gibt? Ich möchte nicht 2 Datensätze für jede Beziehung speichern müssen.
Was ist Ihre Pivot-Tabelle? Du scheinst "null" zu übergeben. – EddyTheDove
Es ist user_user. Ich übergebe null, da ich die Laravel-Benennungskonvention befolgt habe und standardmäßig auf Null gesetzt ist. – tecshaun