У меня возникли проблемы с формулировкой заголовка моего вопроса. Извинения за это.
У меня есть ассоциация 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, и английский не является моим родным языком, так что будьте со мной снисходительны.
Ваше здоровье.
$catalog->Categories
пуст из-за отложенной загрузки, и это поведение, которое вы, кажется, видите. - person cheesemacfly   schedule 12.11.2013