来自学说的实体关系只有 return 个 ID

Only return ids for entity relations from doctrine

学说实体:

class Thing
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

     /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=45)
     */
    private $name;

    /**
     *@ORM\ManyToOne(targetEntity="Project\Bundle\ModelBundle\Entity\ThingGroup", cascade={"persist"})
     * @var type 
     */
    private $thingGroup;

控制器:

public function getThingsByThingGroupAction($id) {

    $things= $this->getDoctrine()->getEntityManager()
                ->getRepository('ProjetModelBundle:Thing')
                ->findBy(array('thingGroup'=>$id));

    return $things;
}

这是 return 事物数组,每个项目内都有整个事物组关系实体。我想以 json 格式将此结果发送到我的客户端,但我不想为每个实体发送整个 ThingGroup,只需要关系的 ID。我可以做一些 DTO 操作来处理这个问题,但是有没有办法直接将 Docrtine 扔到 return 只有关系的 ids?

一种解决方案是使用查询构建器根据您的需要构建查询。但我会推荐一个更好的方法:使用序列化器。您可以使用 JMSSerializerBundle,因为它比 Symfony 附带的序列化程序强大得多。使用 JMSSerializer,您将轻松配置您的实体以公开某些参数、公开方式和时间。

https://github.com/schmittjoh/JMSSerializerBundle