Php 按doctrine2,symfony2中的父级对所有结果进行分组
我试图检索表中的所有实体,但这些实体是按它们的父对象在数组中分组的 如果我有一个具有父类别的类别,例如:Php 按doctrine2,symfony2中的父级对所有结果进行分组,php,arrays,symfony,doctrine-orm,Php,Arrays,Symfony,Doctrine Orm,我试图检索表中的所有实体,但这些实体是按它们的父对象在数组中分组的 如果我有一个具有父类别的类别,例如: id name parent 我希望结果按父项分组。。因此,我可以像这样与他们合作: array( 0 => array( array( id => 1, name => name1), array( id => 2, n
id
name
parent
我希望结果按父项分组。。因此,我可以像这样与他们合作:
array(
0 => array(
array(
id => 1,
name => name1),
array(
id => 2,
name => name2)),
1 => array(
array(
id => 3,
name => name3),
array(
id => 4,
name => name4)))
等等。。。有什么东西可以让我这样工作吗?最终还是这样做了。。。不是最好的,但目前仍有效:
$metas = $CMMRepo->findBy(array(
'communityMedia' => $cores,
'typeMeta' => $type,
'parent' => null));
foreach ($metas as $meta) {
$meta->children = $CMMRepo->findBy(array(
'parent' => $meta->getId()),
array('id' => 'DESC'));
$media[] = $meta;
}
注意“子项”父项是简单字段还是引用另一个表的字段?(与类别和产品类似)父项是表示同一表的ID的字段。(和类别一样,父类应该是该类别的父类)似乎是一个有趣的问题。如果您的问题是类别引用子类别(而不是类别引用类别),我建议您获取类别并循环它们以获取每个类别引用的子类别。嗯,让我想想……我觉得有可能。如果
选择不同的父项
字段,然后循环它们(可能使用延迟加载功能)以检索每个父项的所有结果。。。能用吗?终于这样做了。。。我知道这不是最好的。。但是有效:$metas=$dealFlowCMM->findBy(数组('communityMedia'=>$cores,'typeMeta'=>$type,'parent'=>null));foreach($metas as$meta){$meta->children=$dealFlowCMM->findBy(数组('parent'=>$meta->getId()),数组('id'=>'DESC');$media[]=$meta;}