Решение найдено:
Модель:
class Categories extends Model
{
public function parent()
{
return $this->belongsTo('\App\Categories', 'parent_id');
}
// Add this line if you want the "parents" property to be populated all the time.
protected $appends = ['parents'];
public function getParentsAttribute()
{
$collection = collect([]);
$parent = $this->parent;
while($parent) {
$collection->push($parent);
$parent = $parent->parent;
}
return $collection;
}
}
Контроллер:
$currentCat = \App\Categories::find($catID);
$parentCats = Categories::find($catID)->parents->reverse()->push($currentCat);
echo '<h5> Выбор раздела';
foreach ($parentCats as $path) {
echo ' > '.$path->name_ru;
}
echo '</h5>';
P.s вывожу прямо в контроллере так как к нему обращается ajax xhr(jquery).
В вызове соотвественно если хотим развернуть порядок то используем
reverse()
Если хотим добавить и текущую выбранную категорию то
push($id)
К знатокам есть вопрос, почему в моделе не выдавало что класс не найден если обращался
return $this->belongsTo('Categories', 'parent_id');
а полным путём всё ок
return $this->belongsTo('\App\Categories', 'parent_id');