2016-12-14 2 views
0

Привет эксперты: У меня возникла проблема с созданием запроса для извлечения информации о документе, на который ссылаются с помощью ссылки «referenceMany». Вот пример установки кодаsymfony mongodb odm referenceMany

class FoodItem{ 

    /** 
    * @MongoDb\Id 
    */ 
    protected Id; 

    /** 
    * @MongoDb\field(type="string") 
    */ 
    protected name; 

    /** 
    * @MongoDb\field(type="float") 
    */ 
    protected calories; 

    /** 
    * @MongoDb\ReferenceMany(targetDocument="FoodItem", storeAs="id") 
    */ 
    protected $bestEatenWith = array(); 
} 

Идея заключается в том 1 FoodItem может быть bestEatenWith других FoodItems, поэтому «bestEatenWith» представляет собой массив «Id принадлежит к той же„документа FoodItem“.

Запрос я использовал это следующим образом -

$qb = $dm->createQueryBuilder('AppBundle:FoodItem') 
     ->select("name", "bestEatenWith", "nutrition") 
     ->eagerCursor(true) 
     ->hydrate(false); 
    $query = $qb->getQuery(); 
    $result = $query->execute(); 

В результате я получаю затем отображается с помощью шаблона Twig, и я могу показать в Twig, «Имя» и «питание», но я получаю ' bestEatenWith «как массив» идентификаторы

Вопрос 1: Как разобрать через $ результат с помощью PHP и доступа к Ид, содержащийся в массиве „bestEatenWith“?

Вопрос 2: Могу ли я получить что-то вроде «bestEatenWith.name» в одном запросе?

ответ

0

Спасибо Мохамеду за ваш ответ, вы ответили на часть моего вопроса. Однако я нашел ответ на вторую часть, чтобы он дал полный ответ.

Вот что я did-

ответа 1

  1. б дамп(), как Mohamed ответил

Ответ 2

  1. Используйте поглотитель functi на «getBestEatenWith», чтобы получить массив
  2. Затем использовал Еогеасп и использовал функцию геттер как GetName, чтобы получить имя bestEatenWith записи
0

Вопрос 1

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

dump($result); 

Вопрос 2

Обычно вы можете получать имя от bestEatenWith существует в $result

Смежные вопросы