Laravel Relationship


Beispiel Beziehung von einzelnen Einträgen innerhalb eines Models(Tabelle)

Durch das Hinzufügen von "parent_id" kann innerhalb einer Tabelle eine Beziehung zu einem anderen Eintrag hergestellt werden.

Ein Eintrag kann also mehrere Child-Einträge haben, diese bekommen als parent_id die id des ursprünglichen Eintrags. Dadurch können verschachtelte Abhängigkeiten (nested) abgebildet werden. Ein Eintrag kann also abhängig von einem Parent sein und selbst der Parent für mehrere Child-Einträge sein.

Tabellenlayout

Tabelle hashtags; Spalten: id, parent_id, name,created_at

Model

Im Model können die Beziehungen wie folgt hinterlegt werden: 

Ein Eintrag kann mehrere childs haben, bzw. einen oder mehrere Parents:

public function parent() {
    return $this->belongsTo('App\Hashtag','parent_id');
}
        
public function childs() {
    return $this->hasMany('App\Hashtag','parent_id','id')->orderBy('created_at'); 
}

Controller: Eager Loading Specific Columns, nested: Parent and Child

Um die Beziehungen in der Abfrage im Controller gleich zu laden, kann folgendes Beispiel verwendet werden:

Hashtag::where('name','like','%'.$hashtag.'%')->select(['id', 'name','parent_id'])->with('childs.childs:parent_id,name', 'parent:id,name')

ManytoMany mit der gleichen Tabelle

Tabellenlayout

Tabelle hashtags; Spalten: id, name,created_at

Pivot-Tabele hashtag_hashtag; Spalten: id, hashtag_id, parent_id

Model

public function parent() {
    return $this->belongsToMany('App\Hashtag','hashtag_hashtag','hashtag_id','parent_id'); 
}
        
public function childs() {
    return $this->hasMany('App\Hashtag','parent_id','id')->orderBy('created_at'); 
}

Sync

Hashtag::where("name","Windows Batch")->first()->parent()->sync(Hashtag::where("name","Windows")->first())
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Aktualisiert: 04.08.2019 von Bernhard

Top-Artikel in diesem Bereich

Preview Laravel Beispiel Tutorial - Schritt für Schritt

Laravel Beispiel Tutorial - Schritt für Schritt

geändert: 27.07.2020 von Bernhard (Erstveröffentlichung: 21.08.2016)

Wie in dem zuvor veröffentlichten Artikel "Übersicht Laravel Funktion" bereits angekündigt, habe ich für Laravel ein Praxis-Beispiel erstellt. Das Beispiel kann bestimmte Datenbankeinträge erstellen, anzeigen, bearbeiten und löschen. In einem nächsten Beispiel werde ich zu dem hier beschriebenen Beispiel eine Benutzeranmeldung und Berechtigung hinzufügen (Authentification, Authorization), vorerst starten wir ohne dieser .... ... weiterlesen

Preview Laravel Vue

Laravel Vue

erstellt: 29.10.2019 von Bernhard

.vue Files setzen ein Webpack-Setup voraus ... ... weiterlesen

Preview Laravel Authentication und Authorization Beispiel

Laravel Authentication und Authorization Beispiel

geändert: 06.10.2019 von Bernhard (Erstveröffentlichung: 12.09.2016)

Laravel ist für Benutzer-Anmeldungen bereits vorbereitet, das Aktivieren der Funktion erfolgt mit einem einfachen Befehl. ... weiterlesen


Fragen / Kommentare