Doctrine ODM PHPCR查询构建器文档连接关系数据库

时间:2014-05-08 19:49:01

标签: symfony doctrine query-builder doctrine-odm symfony-cmf

我正在为我正在构建的CMS提供2种不同的存储空间。关系数据库和内容存储库(PHPCR + Doctrine ODM)。我有一个User存储在关系数据库中,我有一个Post文档存储在PHPCR中。我如何获得所有活跃用户的所有帖子。

Psuedo代码(用于演示目的):

$qb = $this->createQueryBuilder('Document\Post', 'post');
$qb->join('post.user', 'user'); // We join on the table inside a relation database
$qb->where('user.active = 1');

$posts = $qb->getQuery()->execute(); // All posts objects of active users

这甚至可能吗?或者我是否需要为我的所有数据使用1种类型的存储(关系或PHPCR)?

希望有人可以帮助我!

1 个答案:

答案 0 :(得分:1)

您无法加入不同的数据库。如果你没有thousends和成千上万的用户,你可以将它们映射到PHPCR。否则你可以做两个查询。一个在ORM上获取您的用户,然后一个在PHPCR-ODM上获取所有具有用户名的帖子,这是您正在寻找的用户之一。

对于从ORM到PHPCR的链接,您可以使用"可引用的"文档的功能并将UUID存储在关系数据库中。你可以通过UUID find一份文件:

$dm->find(null, $uuid)