【发布时间】:2021-05-15 08:46:27
【问题描述】:
我的项目中有两个实体:
class Effect {
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(name="id", type="integer")
*/
private $id;
/**
* @ORM\Column(name="name", type="string", unique=true)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\EffectGroup", inversedBy="effects")
* @ORM\JoinColumn(name="group_id", referencedColumnName="id")
*/
private $effectGroup;
}
class EffectGroup {
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(name="id", type="integer")
*/
private $id;
/**
* @ORM\Column(name="name", type="string", unique=true)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Effect", mappedBy="effectGroup")
*/
private $effects;
}
我需要查询数据库得到以下结果:
array [
'effectGroupName 1' => array [
object (App\Entity\Effect) {
id: 1,
name: 'effectName 1'
...
},
object (App\Entity\Effect) {
id: 2,
name: 'effectName 2'
...
},
]
'effectGroupName 2' => array [
object (App\Entity\Effect) {
id: 3,
name: 'effectName 3'
...
},
object (App\Entity\Effect) {
id: 4,
name: 'effectName 4'
...
},
]
]
其中effectGroupName 1 和effectGroupName 2 是来自EffectGroup 实体的名称。
我需要一个查询,以便我可以在 Effect id 之后过滤结果。
ORM / DQL 查询应该是什么样的?
有没有可能达到这样的结果?
【问题讨论】:
标签: sql symfony doctrine-orm doctrine dql