Ich versuche, alle Links in einer Abfrage nach parent_id, level, Gewicht sortiert, um Rekursivität zu vermeiden.Laravel 5.5 Multi-Level-Menü Abfrage Reihenfolge
Ich habe rekursive Beziehungen im Modell definiert und alles funktioniert gut, aber ich würde es vorziehen, sie zu vermeiden.
/**
* Get parents recursive.
*
* @return mixed
*/
public function parentRecursive()
{
return $this->parent()->with(['parentRecursive']);
}
/**
* Parent.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function parent()
{
return $this->belongsTo(Link::class, 'parent_id');
}
/**
* Get children recursive.
*
* @return mixed
*/
public function childrenRecursive()
{
return $this->children()->with(['childrenRecursive'])->orderBy('weight', 'asc');
}
/**
* Children.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function children()
{
return $this->hasMany(Link::class, 'parent_id');
}
Die Dropdown sollte wie folgt aussehen:
-Level 1
--Level 1.1
--Level 1.2
---Level 1.2.1
---Level 1.2.2
--Level 1.3
-Level 2
--Level 1.1
-Level 3
--Level 1.1
-Level 4
--Level 1.1
-Level 5