gpt4 book ai didi

php - ObjectManager 方法 createQuery() 似乎不存在

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:59 25 4
gpt4 key购买 nike

我有这样的类,它可以工作并从数据库返回反馈

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 提交代码时,它报告说

The method createQuery() does not seem to exist on object

与 PhpStorm 相同,它会在此行显示警告。有解决此问题的方法吗?

最佳答案

$em 变量添加一个 @var phpdoc 注释 ...

... 或(甚至更好)@returnManagerRegistrygetManager() 方法。

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

这通常是一个很好的做法,也将在 PHPStorm 中启用自动完成。

示例:

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

……或者……

class ManagerRegistry 
{

/**
* ...
*
* @return \Doctrine\ORM\EntityManager
*/
public function getManager()
{
// ...

关于php - ObjectManager 方法 createQuery() 似乎不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com