Как получить полный результат с Doctrine/Symfony2

У меня возникли проблемы с формулировкой заголовка моего вопроса. Извинения за это.

У меня есть ассоциация OneToMany между «Каталогом» и «Категорией». У меня также есть самостоятельная двунаправленная ассоциация с категорией (поскольку категория может содержать несколько категорий).

Проблема в том, что когда я получаю свой каталог, категории моего каталога пусты. Я думал, что Doctrine может вернуть полный результат, так как в категории есть внешний ключ.

Вот два фрагмента кода того, что я сделал:

Мои сущности:

Entity Catalog
/**
 * @ORM\OneToMany(targetEntity="Category", mappedBy="catalog")
 **/
private $catalogCategories;

Entity Category
/**
 * @ORM\ManyToOne(targetEntity="Catalog", inversedBy="catalogCategories")
 * @ORM\JoinColumn(name="catalog_id", referencedColumnName="catalog_id")
 **/
private $catalog;

/**
 * @ORM\OneToMany(targetEntity="Category", mappedBy="categoryParent")
 **/
private $categoryChildren;

/**
 * 
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="categoryChildren")
 * @ORM\JoinColumn(name="category_parent_id", referencedColumnName="category_id")
 **/
private $categoryParent;

Мой контроллер

 /**
 * @return array
 * @View()
 * @ParamConverter("catalog", class="TestRESTfulAPIBundle:Catalog") 
 */
public function getCatalogAction(Catalog $catalog)
{        
    return array('catalog' => $catalog);
}

Обратите внимание, что я использую FOSRestBundle. Когда я имитирую HTTP-запрос, я получаю свой каталог в объекте JSON, но мои catalog_categories пусты.

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

Если это так (что я думаю, это правда), может ли кто-нибудь указать на мою ошибку?

Я новичок в Symfony2, и английский не является моим родным языком, так что будьте со мной снисходительны.

Ваше здоровье.


person Michael Villeneuve    schedule 11.11.2013    source источник
comment
Вероятно, это связано с тем, что по умолчанию ссылочный объект загружается лениво. Взгляните на этот вопрос, чтобы узнать, поможет ли он: stackoverflow.com/questions/17954591/   -  person cheesemacfly    schedule 12.11.2013
comment
Извините, но я не понимаю вашего ответа. Вы указываете документацию. Если он включен по умолчанию, мой код не должен работать? Что мне не хватает.   -  person Michael Villeneuve    schedule 12.11.2013
comment
Я имею в виду, что по умолчанию $catalog->Categories пуст из-за отложенной загрузки, и это поведение, которое вы, кажется, видите.   -  person cheesemacfly    schedule 12.11.2013
comment
Взгляните на приведенный здесь простой и понятный пример: docs.doctrine-project.org/projects/doctrine-orm/en/latest/ (обратите особое внимание на второй фрагмент кода и комментарии )   -  person cheesemacfly    schedule 12.11.2013
comment
Эй, спасибо за помощь. В конце концов, это была моя ошибка. Мой внешний ключ был на самом деле нулевым. Следует проверить это перед публикацией. В любом случае спасибо за ссылки, помогите мне понять, что происходит за кулисами.   -  person Michael Villeneuve    schedule 12.11.2013