Orm 如何将Doctrine2实体图转换为数组

Orm 如何将Doctrine2实体图转换为数组,orm,doctrine-orm,Orm,Doctrine Orm,我有以下实体 我试图做的是,当我通过id获取产品时,我想将其转换为数组,包括所有关联实体,包括它们的关联条目 结果数组需要可序列化 使用条令查询生成器和水合物数组水合模式 编辑:很抱歉没有包括示例,我当时正在手机上。看看我写的一些与此相关的良好实践 对于一个代码示例,我将编写的存储库方法如下所示(我将避免使用类似pc等缩写词,因为它会使代码的可读性大大降低(至少在您开始学习条令时是这样的…) 我认为您需要在DQL语法中使用JOIN: $results = $entityManager

我有以下实体

我试图做的是,当我通过id获取产品时,我想将其转换为数组,包括所有关联实体,包括它们的关联条目


结果数组需要可序列化

使用条令查询生成器和水合物数组水合模式

编辑:很抱歉没有包括示例,我当时正在手机上。看看我写的一些与此相关的良好实践

对于一个代码示例,我将编写的存储库方法如下所示(我将避免使用类似
p
c
等缩写词,因为它会使代码的可读性大大降低(至少在您开始学习条令时是这样的…)


我认为您需要在DQL语法中使用JOIN:

$results = $entityManager->executeQuery('SELECT p FROM Product p JOIN p.Brand b JOIN p.Tags t JOIN p.Categories c')->getArrayResult();
var_dump($results);

另外,我认为您应该避免以大写字母开头的类成员。这可能会导致实体名称有点混乱。

我对doctrine2很陌生。您能给我一些代码示例吗?谢谢您的编辑。最好不要使用缩写。如果您查看我对@S0pra的注释,我成功地实现了此功能。事件获取设置产品的类别父类别,但由于某些原因,我无法获取产品类别的子类别(pheww..)太好了。我这样修改了它:“$dql=”从\App\Domain\Entity\Product p LEFT JOIN p选择p,b,c,t,cp。品牌b LEFT JOIN p。类别c LEFT JOIN c。父cp LEFT JOIN p。标签t W这里p.ID=?1';`现在它也检索产品类别的父级。唯一缺少的是产品类别的子级。如果我添加
左JOIN c.children cc
,结果返回空数组
$results = $entityManager->executeQuery('SELECT p FROM Product p JOIN p.Brand b JOIN p.Tags t JOIN p.Categories c')->getArrayResult();
var_dump($results);