在我的实体中,documents我有一个名为的字段linkedDocuments:class Documents { /** * @ORM\ManyToMany(targetEntity="App\Entity\Documents") * @ORM\JoinTable(name="documents_documents", * joinColumns={@JoinColumn(name="link_origin", referencedColumnName="id")}, * inverseJoinColumns={@JoinColumn(name="link_destination", referencedColumnName="id")} * ) * @Groups("documents") */ private $linkedDocuments; public function __construct() { $this->linkedDocuments = new ArrayCollection(); }在我的控制器中,我创建了一个对象:$table = $this->em->getRepository(Documents::class)->findAll();这是输出:array:1 [▼ 0 => Documents^ {#6414 ▼ -id: 1 -linkedDocuments: PersistentCollection^ {#5724 ▼ -snapshot: [] -owner: Documents^ {#6414} -association: array:19 [ …19] -em: EntityManager^ {#2786 …11} -backRefFieldName: null -typeClass: ClassMetadata {#2613 …} -isDirty: false #collection: ArrayCollection^ {#2820 ▼ -elements: [] } #initialized: true } }]我的数组集合是空的。但我希望它有两个元素,因为我在 mySQL 数据库中看到了它们。像这样: -elements: array:2 [▼ 0 => linkedDocuments^ {#1204 ▶} 1 => linkedDocuments ▶} ]
1 回答
![?](http://img1.sycdn.imooc.com/5458626a0001503602200220-100-100.jpg)
HUH函数
TA贡献1836条经验 获得超4个赞
我找到了解决办法。取而代之的是:
$table = $this->em->getRepository(Documents::class)->findAll();
我不得不这样写:
$table = $this->em->getRepository(Documents::class)->linkedDocuments($id);
在我的 DocumentsRepository 中,我添加了函数:
public function linkedDocuments($id)
{
return $this->createQueryBuilder('d')
->leftJoin('d.linkedDocuments', 'dd')
->where('d.id = :id')
->setParameter(':id', $id)
->getQuery()
->execute();
}
- 1 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消