ObjectManager方法createQuery()似乎不存在

时间:2014-07-04 12:08:06

标签: php symfony

我有这样的课程,它可以运作并从数据库中返回反馈

namespace Acme\Bundle\AcmeBundle\Handler;

use Doctrine\Common\Persistence\ManagerRegistry;

class FeedbackHandler implements FeedbackHandlerInterface
{
    private $em;
    private $entityClass;
    private $repository;

    public function __construct(ManagerRegistry $mr, $entityClass)
    {
        $this->em = $mr->getManager();
        $this->entityClass = $entityClass;
        $this->repository = $this->em->getRepository($this->entityClass);
    }

    public function get($id)
    {
        return $this->repository->find($id);
    }

    public function all($limit = 50, $offset = 0)
    {

        $feedbacks = $this->em->createQuery("SELECT f FROM AcmeAcmeBundle:Feedback f")
            ->setFirstResult($offset)
            ->setMaxResults($limit)
            ->getResult();

        return array( "feedback" => $feedbacks );
    }

}

然而,当我向scrutinizer-ci.com提交代码时,它会报告

  

createQuery()方法似乎不存在   对象

与PhpStorm相同,它在此行显示警告。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

@var变量添加$em phpdoc 评论......

...或(甚至更好)@returnManagerRegistry的{​​{1}}方法。

然后PHPStorm / scrutinizer-ci将知道getManager()是哪种类型,并且它有$em方法。

这是一般的好习惯,也可以在PHPStorm中启用自动完成功能。

示例:

createQuery()

......或......

/** @var \Doctrine\ORM\EntityManager */
private $em;