在symfony中通过user_id加入

时间:2014-11-06 08:42:03

标签: php symfony doctrine-orm

如何通过symfony两个表选择数据。例如,有一个帖子表,它是一个字段user_id(创建帖子的用户),我选择所有帖子并传递给模板。模板必须显示来自表用户的用户数据(对于user_id上的每个帖子),因为这样做可以吗?

我阅读了文档,但并不理解

我的查询现在:

   public function indexAction()
    {
        $posts = $this->getDoctrine()
                      ->getRepository('AcmePostBundle:Post');

        $queryPosts = $posts->createQueryBuilder('p')
                       ->orderBy('p.id', 'DESC')
                       ->getQuery();

        return new Response(var_dump($queryPosts->getResult()));
   }

我想获得表格path表格#39;用户' by user_id

1 个答案:

答案 0 :(得分:0)

您是否在模板中尝试执行以下操作: (让我们说你从我们的控制器返回帖子)

{% for post in posts %}
    {{ post.user }}
{% endfor %}

Doctrine自己加载整个东西,你应该在你的var_dump中看到它


在您的存储库帖子中尝试此操作

public function myInnerJoin()
{

       $qb = $this->createQueryBuilder('f') 
            ->select('f','g')
            ->innerJoin('f.user', 'g'); 

       return $qb->getQuery()->getArrayResult();
}

并在控制器中

$repository = $this->getDoctrine()->getManager()->getRepository('AcmeBundle:..');
$result = $repository->myInnerJoin();