Получить всех родителей детской категории - PullRequest
1 голос
/ 08 июля 2019

Я хотел бы получить все его основные категории, если категория продукта является подкатегорией.

Я прочитал эту статью: Laravel получаю всех родителей категории .но я не смог адаптировать свой собственный проект

У меня есть одна таблица категорий в БД. - категория И если категория является главной, его main_id = 0, а если подкатегория main_id - это родительский идентификатор. Я должен получить такие категории, как этот sub-> parent-> parent .... Parent Как я могу это сделать? Спасибо

Модель моей категории

class Category extends Model
{
protected $table = 'category';
protected $fillable = ['category_name', 'slug', 'main_id'];


public function index() {
    return $this->belongsTo('App\SubCategory');
}
public function productt(){
    return $this->belongsToMany('App\SubCategory','category_sub');
}
public static function getCategory($parent = 0, $string = '-1'){
    $categories = Category::where('main_id', '=', $parent)->get();

    $string = $string+1;
    foreach($categories as $category){
        echo "<option value='$category->id'>".str_repeat('-', 
  $string).$category->category_name."</option>";
        Category::getCategory($category->id, $string);
    }

 }
public function parent()
{
   return $this->belongsTo('App\Models\Category', 'main_id');
}

public function children()
{
   return $this->hasMany('App\Models\Category', 'main_id');
}

}

1 Ответ

1 голос
/ 08 июля 2019

Вы бы получили родителей, как это:

$category = Category::find(1);
$collection = collect();
do {
    $collection->push($category->parent);
    $category = $category->parent;
} while($category->parent()->exists())

Имейте в виду, что этот метод заканчивается переменной $category как самой высокой родитель в цепочке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...