gpt4 book ai didi

laravel - 我如何让所有属于 parent 的 child 都有 Eloquent ?

转载 作者:行者123 更新时间:2023-12-02 09:50:40 24 4
gpt4 key购买 nike

在我的数据库中,我有一个类别表。类别可以有父类别,使其成为递归关系

我还有一个产品表。每个产品都属于一个类别。

例如,我有一棵树,如下所示:

Category
Sub-Category 1
Sub-Sub-Category 1
Product 1
Product 2
Product 3
Product 4
Sub-Sub-Category 2
Product 5
Product 6
Product 7
Product 8
Sub-Category 2
Sub-Sub-Category 3
Product 9
Product 10
Product 11
Product 12

如果我执行$SubCategory1->products,我希望它为我提供产品 1-8

如果我执行$SubSubCategory3->products,我希望它为我提供产品 9-12

如果我执行$Category->products,我希望它为我提供所有产品

基本上,我希望该类别提供属于该类别的所有产品

最佳答案

在希望找到一个很好地使用 Laravel 的答案之后,我最终放弃了,只是编写代码来完成我想要的事情,而且它最终比我预期的要小。

public function all_products()
{
$products = [];
$categories = [$this];
while(count($categories) > 0){
$nextCategories = [];
foreach ($categories as $category) {
$products = array_merge($products, $category->products->all());
$nextCategories = array_merge($nextCategories, $category->children->all());
}
$categories = $nextCategories;
}
return new Collection($products); //Illuminate\Database\Eloquent\Collection
}

关于laravel - 我如何让所有属于 parent 的 child 都有 Eloquent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195241/

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