如果产品类别是子类别,我希望获得其所有主要类别。
我读了这篇文章:Laravel get all parents of category。但是我无法适应自己的项目
我在数据库中有一个类别表。 -类别 并且,如果category是主要类别,则他的main_id = 0,但是如果它的子类别main_id是父ID。 İ需要获得像子->父->父...这样的类别。 我怎样才能做到这一点?谢谢
我的类别模型
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');
}
}
答案 0 :(得分:1)
您会这样得到父母的:
$category = Category::find(1);
$collection = collect();
do {
$collection->push($category->parent);
$category = $category->parent;
} while($category->parent()->exists())
请记住,此方法最终以$category
变量为最高
链中的父级。