私は CakePHP を使用して、project_id、id、parent_id、title、description を含むデータベース テーブル 'Task' をクエリしています。私のコントローラーコードは次のようにクエリを処理します:
$query= $this->Task->find('threaded', array(
'conditions' => array(
'Task.project_id' => 83,
),
'fields' => array(
'Task.id',
'Task.title',
'Task.parent_id',
)
));
//Pass the result to the view
$this->set('query', $query);
次に、次のようにjsonをデコードすると、私の見解では:
<?php echo json_encode($simple); ?>
次のjson構造を取得します。
[
{
"Task": {
"id": "475",
"title": "Have a Picnic",
"parent_id": "0"
},
"children": [
{
"Task": {
"id": "476",
"title": "Drive/Hike to Moutains",
"parent_id": "475"
},
"children": []
}
]
}
]
(私はこのツールを使用して美化しました。出力はもちろん連続した文字列です)
ただし、JS JIT SpaceTree には次の構造が必要です。
{
"id": "aUniqueIdentifier",
"name": "usually a nodes name",
"data": [
{key:"some key", value: "some value"},
{key:"some other key", value: "some other value"}
],
children: [/* other nodes or empty */]
}
そして、出力を調整する方法、またはクエリを変更して正しい構造を返す方法がわかりません。また、「スレッド」と「リスト」の両方の find() タイプを試してみましたが、同じ構造が得られました。どんな助けでも大歓迎です!