подкатегорий в одной таблице с глубокой вложенностью через perent_id. В моделе соответственно связи:
public function child()
{
return $this->hasMany(self::class, 'parent_id');
}
public function parent()
{
return $this->belongsTo(self::class, 'parent_id');
}
У последней подкатегории есть опции (активные не активные)
Как при получении самой первой категории в списке отфильтровать первую вложенность подкатегорий по активным опциям в последних категория дерева.
Пример на рисунке: $category = Category::whereId(1)->with('subcategories', function ($query) {
$query-> ??? ->whereHas('options' ....)
})
Те в итоге нужно получить категорию ID 1 c с подкатегорией ID3 как реляцию и так далее, при запросе ID3 получить с реляцией ID6
категорий обычно не так много, я тупо загружаю все в память и сам фильтрую что нужно
Есть замечательная статья про работу с данными с иерархией. Может чем то поможет http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
ltree будет лучшим решением уверен)
Обсуждают сегодня