我有这样的课程,它可以运作并从数据库中返回反馈
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相同,它在此行显示警告。有没有办法解决这个问题?
答案 0 :(得分:0)
为@var
变量添加$em
phpdoc 评论......
...或(甚至更好)@return
到ManagerRegistry
的{{1}}方法。
然后PHPStorm / scrutinizer-ci将知道getManager()
是哪种类型,并且它有$em
方法。
这是一般的好习惯,也可以在PHPStorm中启用自动完成功能。
示例:强>
createQuery()
......或......
/** @var \Doctrine\ORM\EntityManager */
private $em;