tp5 查询所有下级,无限极查询下级
时间: 2024-01-03 18:03:18 浏览: 131
在 ThinkPHP5 中,我们可以通过使用递归查询来实现无限极查询下级的操作。首先,我们需要定义一个方法来递归查询下级数据:
```
/**
* 递归查询下级数据
* @param int $id 当前节点ID
* @param array $list 数据列表
* @param int $level 当前节点层级
* @return array
*/
public function getChild($id, $list, $level = 0)
{
static $result = array();
foreach ($list as $key => $value) {
if ($value['pid'] == $id) {
$value['level'] = $level;
$result[] = $value;
$this->getChild($value['id'], $list, $level + 1);
}
}
return $result;
}
```
接下来,我们可以在控制器中调用该方法来实现查询下级数据的操作:
```
public function getChildData($id)
{
// 查询所有数据
$list = Db::name('table_name')->select();
// 调用递归查询下级数据的方法
$result = $this->getChild($id, $list);
return json($result);
}
```
其中,`$id` 表示当前节点ID,`$list` 表示数据列表,`$level` 表示当前节点层级,`$result` 是一个静态变量,用于保存查询结果。我们首先查询出所有数据,然后调用 `getChild` 方法递归查询下级数据,最后返回查询结果即可。
阅读全文