gpt4 book ai didi

laravel-5 - Laravel 5 多级分类

转载 作者:行者123 更新时间:2023-12-03 23:29:57 25 4
gpt4 key购买 nike

我目前有 2 个表 categorysubcategory 一切正常,但我需要另一个级别的子类别,就像 category-> sub->sub 就此而言,我试图找到一个合理的解决方案,但最终我得到了一堆包来为我处理。

现在的问题是

  1. 我必须删除我的类别表及其与我的关系吗?在我尝试任何包之前的其他模式,或者我应该在我当前的表格中添加包顶部?
  2. 根据您的经验,最适合我的套餐是什么?

提前致谢。

最佳答案

你不需要依赖包来实现它。

您可以设计您的 categories 表,如下所示:

|----------|------------|---------------|
| id | name | category_id |
|----------|------------|---------------|

这里的category_id是可空字段,外键引用categories表的id

对于类别 category_id 字段将是 NULL 并且对于子类别 category_id 将是它的父类别 ID。对于子子类别,category_id 将是父子类别 id。

在模型中,你可以写如下关系:

Category.php

/**
* Get the sub categories for the category.
*/
public function categories()
{
return $this->hasMany(Category::class);
}

现在您可以获取您的子类别,例如 $category->categories

注意:您不需要 subcategory 表,只需一张表即可。

更新 - 显示产品类别

更新Category.php:

/**
* Get the parent category that owns the category.
*/
public function parent()
{
return $this->belongsTo(Category::class);
}

Product.php中:

/**
* Get the category that owns the product.
*/
public function category()
{
return $this->belongsTo(Category::class);
}

现在,您需要获取产品类别及其所有父项。它将是从 parent 到 child 的一系列类别。然后你就可以随心所欲地展示了。

$category = $product->category;
$categories = [$category];

while (!is_null($category) && !is_null($category = $category->parent)) {
$categories.unshift($category);
}

// $categories = ['parent category', 'sub category', 'sub sub category' ..]

按顺序显示类别标题

foreach ($categories as $category) {
echo $category->title . '<br>';
}

关于laravel-5 - Laravel 5 多级分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50195917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com