【发布时间】:2017-11-26 05:04:54
【问题描述】:
我希望我的类别列表在返回给用户时具有良好的格式。我从数据库中得到的是:
[
{
"id": 1,
"name": "pet",
"parent_id": null
},
{
"id": 2,
"name": "page",
"parent_id": null
},
{
"id": 3,
"name": "dog",
"parent_id": 1
},
{
"id": 4,
"name": "cat",
"parent_id": 1
},
{
"id": 5,
"name": "rodent",
"parent_id": 1
},...
我希望它保持树状结构,例如:
{
"id": 1,
"name": "pet",
"parent_id": null,
"children": [
{
"id": 3,
"name": "dog",
"parent_id": 1
},
{
"id": 4,
"name": "cat",
"parent_id": 1
},...
等等
有没有一种简单的方法可以做到这一点,或者我必须遍历数据库结果并创建新的有组织的数组才能返回? 最好的方法是什么?问题是子类别也可能有子类别。或者也许我应该只保留从数据库中获取的结构并将子 ID 作为数组添加(无论如何我都可以引用它们)?
感谢您的帮助。
谢谢。
【问题讨论】:
-
由于您描述的关系不是以数据类型的形式内置于 php 中的,因此您必须自己创建树结构。仅仅是因为你必须描述构建它的算法。
-
我正在使用 lumen (laravel) 框架(其中的新手)。可以在类别模型中构建吗?
-
我们能看到你的控制器中返回那个的代码吗?
-
是的,但是为什么? :P $categories = response()->json(Category::all());或 $categories = DB::table('categories')->get();两者都给出相同的响应。
标签: php json laravel laravel-5 lumen