StofのDoctrineExtensionバンドルを使用してツリーを取得しています。次に、そのツリーを配列に変換します(その後、jsonに変換されます)。
NestedTreeRepository-> childrenHierarchy()の形式は正しい形式ではありませんが、出力を変更して、ノードの「title」プロパティと「id」プロパティのみが返されるようにし、すべての子を「children」サブ配列に配置します。 。この形式(JSON)に準拠:
{
label: 'node1',
children: [
{ label: 'child1' },
{ label: 'child2' }
]
},
{
label: 'node2',
children: [
{ label: 'child3' }
]
}
}
私は次のコードを試しましたが、これはchildrenHierarchy()と同じものを返しますが、クエリを変更することができます。
$query = $em
->createQueryBuilder()
->select('node')
->from('MyBundle:Page', 'node')
->orderBy('node.root, node.lft', 'ASC')
->getQuery()
;
$nodes = $query->getArrayResult();
[Do magic here]
$tree = $pagerepo->buildTree($nodes);
次のプロパティのみを含むはるかに単純なオブジェクトにすべてのノードを型キャストすることは可能ですか?
- id
- タイトル
- ポジショニングに使用される他のいくつかのint
次に、それをjson_encode()で実行すると、必要なものが正確に得られます。
もちろん、他の解決策も歓迎します。