使用 FOSUserBundle 使用 queryBuilder join 获取用户名



我使用FOSUserBundle,我需要获取在我的帖子上写评论的用户名。

我使用函数createQuery来获取帖子评论,并将此联接添加到尝试获取名称时:

<?php
namespace CommentsBundleEntity;
use FOSUserBundleEntityUser;
/**
 * CommentsRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class CommentsRepository extends DoctrineORMEntityRepository
{
    public function getPostComments($planId)
    {
        $arrPlanComments = array();
        $query = $this->getEntityManager()->createQuery(
            'SELECT 
             c.id, 
             c.fkUser, 
             c.fkReply, 
             c.comment, 
             c.createdAt, 
             c.likes, 
             c.unlikes 
             FROM CommentsBundle:Comments c 
             INNER JOIN UserBundle:User u 
             WITH (c.fkUser = u.id) 
             WHERE 
             c.fkPlan = :planId 
             ORDER BY c.createdAt DESC'
        )->setParameter('planId', $planId);
        try
        {
            $arrPlanComments = $query->getArrayResult();
        }
        catch(DoctrineORMNoResultException $ex)
        {
            echo $ex->getMessage();
        }
        return $arrPlanComments;
    }
}

我已经将 FOSUserBundle 扩展到名为"UserBundle"的自定义捆绑包,它工作正常,但我不知道如何添加与此实体的关系。

添加连接关系时出现此错误:

[语义错误] 第 0 行,第 164 行靠近"用户捆绑包:用户":错误:未定义类"用户捆绑包\实体\用户"。

怎么了?

根据文档,您必须为用户实体创建自己的类,这将扩展 FOSUser 提供的类。看来你还没有这样做。这就是您的错误消息可能指示的内容。

相关内容

  • 没有找到相关文章