доктрина odm запрос ссылка многие поля

Возьмите пример документации:

/** @Document */
class BlogPost
{
// ...

/** @ReferenceOne(targetDocument="User", inversedBy="posts") */
private $user;
}

/** @Document */
class User
{
// ...

/** @ReferenceMany(targetDocument="BlogPost", mappedBy="user") */
private $posts;
}

Есть ли способ, которым я могу запросить сущность пользователя и получить все его сообщения?

я имею в виду, я могу использовать пример запроса:

db.BlogPost.find({ 'user.$id' : user.id })

Но что, если я хочу сделать:

db.User.find({ 'id' : id })

И доступ к сообщениям пользователя через свойство пользователя $ posts

Можно ли это заархивировать?

Когда я выполняю запрос, мы можем найти журналы:

[2016-08-15 17:13:45] doctrine.DEBUG: MongoDB query: {"find":true,"query":{"_id":{}},"fields":[],"db":"base","collection":"User"} [] []
[2016-08-15 17:13:45] doctrine.DEBUG: MongoDB query: {"limit":true,"limitNum":1,"query":{"_id":{}},"fields":[]} [] []
[2016-08-15 17:13:45] doctrine.DEBUG: MongoDB query: {"limit":true,"limitNum":null,"query":{"_id":{}},"fields":[]} [] []

1

Решение

С доктриной ODM:

$dm = $this->get('doctrine_mongodb')->getManager();

$user = $dm->getRepository('AppBundle:User')->findOneById($id);
$posts = $user->getPosts();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]