0
私は、再帰を避けるために、parent_id、レベル、ウェイトの順に1つのクエリですべてのリンクを取得しようとしています。Laravel 5.5複数レベルのメニュークエリの注文
私はモデル内で定義された再帰的関係を持っていますが、すべて正常に動作しますが、私はそれらを使わない方がいいです。
/**
* 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');
}
ドロップダウンは、次のようになります。私は、ネストされたセット(例えばhttps://github.com/etrepat/baumパッケージ)を使用することを推奨し
-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