我需要一些帮助。
我有一个DomainController
,可用于定义一些Propertys
并创建域实体
public function new(Request $request): Response{
$data = json_decode($request->getContent(), true);
$domain = new Domain();
$domain->setUri($data['record']['uri']);
$em = $this->getDoctrine()->getManager();
$em->persist($domain);
$em->flush($domain);
$id = $domain->getId();
$uri = $domain->getUri();
$businessRepository = new BusinessRepository();
$result = $businessRepository->newDomainCheck($id, $uri);
return new JsonResponse($result);
}
您可以看到,我叫我的BusinessRepository->newDomainCheck($id, $uri)
问题:
我的$ id变量为空,但刷新后需要此int。
public function newDomainCheck($id, $uri){
var_dump($id);
var_dump($uri);
$domain = new Domain();
$domain->setUri($uri);
$domain->setId($id);
$result = $this->analyzeDomain($uri);
$res = json_decode($result->getContent(), true);
$domainCheckResult = $this->createResponse($res, $domain);
$em = $this
->getEntityManager()
->getRepository('App:DomainCheckResult');
$em->persist($domainCheckResult);
$em->flush($domainCheckResult);
return new JsonResponse($domainCheckResult);
}
问题:
试图调用名为“ App \ Repository \ BusinessRepository”的类的名为“ getEntityManager”的未定义方法
您能帮我解决这个问题吗?
答案 0 :(得分:0)
确保您的存储库已在您的业务实体中正确注册
如果您使用注释,则类似于
@ORM \ Entity(repositoryClass =“ AppBundle \ Repository \ BusinessRepository”)
而不是使用实例化它 $ businessRepository = new BusinessRepository();
您应该使用
从实体经理那里获取$ this-> getEntityManager()-> getRepository(Business :: class);
如果没有实体,则应将其视为服务,然后将实体管理器注入其中。
此外,在newDomainCheck中,您不使用实体管理器进行刷新,而是使用App:DomainCheckResult存储库。
您的$ em获取者应在
处停止-> getEntityManager()