Symfony:如何在findAll方法中关联数据库记录

时间:2015-10-29 10:46:31

标签: php symfony

我正在学习symfony 2.7

我在自定义捆绑下有两个实体BookCategory,它们之间存在关联。

我有Book实体的CRUD系统。

我的问题是......

indexAction()控制器的book方法中,我希望在列表中显示类别名称以及其他数据。

我试过..

    $em = $this->getDoctrine()->getManager();

    $entities = $em->getRepository('CustomBookBundle:Book')->findAll();
    $category_name = $entities->getCategory(); 

但收到错误Call to a member function getCategory() on a non-object

我对showAction方法做了相同的操作,因为有find方法可以获取单本书的数据。

我想知道如何获取图书的所有相关记录。

还有如何将它们传递给Twig template

2 个答案:

答案 0 :(得分:1)

您正在呼叫findAll,因此这将是一个集合。

$entities = $em->getRepository('CustomBookBundle:Book')->findAll();

如果实体拥有该方法,您可以遍历$entities并调用getCategory()方法。

foreach ($entities as $entity) {
    echo $entity->getCategory();
}

答案 1 :(得分:0)

<tree-grid
  expand-level  = "3"
  tree-data     = "tree_data"
  expand-on     = "expanding_property"
  col-defs      = "col_defs"
  icon-leaf     = "glyphicon glyphicon-file"
  icon-expand   = "glyphicon glyphicon-folder-close"
  icon-collapse = "glyphicon glyphicon-folder-open">
</tree-grid>

我使用$entities = $em->getRepository('CustomBookBundle:Book')->findAll(); 找到了一个非常简单的答案。

Twig