避免原则返回完整的相关实体



我是Symfony的新成员,我正试图从我的内容表中获取所有记录。它可以工作,但它也返回相关实体的所有字段。

$content = $this->contentRepository->findAll();

我得到的结果是:

[{
"id": 2,
"field1": "xx",
"field2": "xx",
"field3": 22,
"field4": {"id":1, "field1":"xx", ...},
....
},...]

在field4上,我想只获得id作为值,而不是整个对象。就像我在做一个SQL。从其他地方阅读我发现关于lazy_loading,但它似乎不工作。

public function getContentData(): array
{
$qb = $this->createQueryBuilder('c');
$qb->select('c.id as id, IDENTITY(c.field4) as field4, c.field1 as field1, c.field2 as field2, c.field3 as field3');
return  $qb->getQuery()->getArrayResult();
}

但是如果你想获得一个字段数组,最好是获得实体数组并通过JMSSerializerBundle或Serializer Component序列化它们

进入你的contentRepository文件,像这样定义一个函数

public function getAllContentIds()
{
$qb = $this->createQueryBuilder();
return $qb->select('id')
->from('YourBundleName:YourTableName')
->getQuery()
->getResult();
}

然后像这样使用这个函数

$contentIds = $this->contentRepository->getAllContentIds();

相关内容

  • 没有找到相关文章

最新更新