为动态d3.js库生成json、mysql和php

col17t5w  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(232)

怎么了伙计们!
我和laravel在一个客户机项目中合作,我想建立一个树状结构,在系统中注册用户,我从d3.js库中找到一个脚本来执行这个任务,为此它使用JSON来获取数据。
其工作结构如下:

{
    "name": "Top Level",
    "parent": null,
    "children": [{
            "name": "Level 2: A",
            "parent": "Top Level",
            "children": [{
                    "name": "Son of A",
                    "parent": "Level 2: A"
                },
                {
                    "name": "Daughter of A",
                    "parent": "Level 2: A"
                }
            ]
        },
        {
            "name": "Level 2: B",
            "parent": "Top Level"
        }
    ]
}

我试着用同样的格式准备json,但我不明白它将自动生成的逻辑。我的数据库中有一个用户,如示例中所示 "parent": null 就我而言: "id_user_parent": null ,并且所有其他用户都与其他用户ID相关。
我的问题是,如何让这个用户的那个“id\u user\u parent”:null先和其他他喜欢的人各自的孩子?
我呼叫我的控制器:

$users = User::select('name_first', 'name_second', 'id_user_parent')->get()

我数据库里的答案是:

[
    {
        "name_first": "Tiago",
        "name_second": "Revers Paza",
        "id_user_parent": null
    }, 
    {
        "name_first": "Yuri",
        "name_second": "Luiz Hugo da Cunha",
        "id_user_parent": 1
    }, 
    {
        "name_first": "Severino",
        "name_second": "Ben\u00edcio das Neves",
        "id_user_parent": 1
    }
]

我生成了一个脚本并处理了数据库中的数据,得到了以下结果:

$users = User::select('name_first', 'name_second', 'id_user_parent')->get();

foreach ($users as $user) {
    if ($user['id_user_parent'] == null) {
        $main['name'] = $user['name_first'] . ' ' . $user['name_second'];
        $main['parent'] = $user['id_user_parent'];

        $data = $main;
    }
}
foreach($users as $key => $user) {
    if ($user['id_user_parent'] != null) {
        $data['children'][$key]['name'] = $user['name_first'] . ' ' . $user['name_second'];
        $data['children'][$key]['parent'] = $user['id_user_parent'];
    }
}
dd($data);

我的json结果是:

array:3 [▼
    "name" => "Tiago Revers Paza"
    "parent" => null
    "children" => array:2 [▼
        1 => array:2 [▼
            "name" => "Yuri Luiz Hugo da Cunha"
            "parent" => 1
        ]
        2 => array:2 [▼
            "name" => "Severino Benício das Neves"
            "parent" => 1
        ]
    ]
]

也就是说,这是“预期的”,但它只适用于一个单一的水平和想法是关系到根据 id_user_parent 有没有人对如何从我的数据库动态挂载这个json有什么想法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题