所以我正在构建一个带有web端symfony框架和移动端codenamone的移动/ Web应用程序。尝试运行添加函数时遇到错误:“关联字段“ PBundle \ Entity \ Projet#$ Partenaire”的实体类型的期望值,取而代之的是“字符串”。”
我的数据库中实际上有两个相关的表:Projet和Partenaire。 Projet获得了一个外键,该外键引用了Partenaire的ID。 这是我的代码:
{
$em = $this->getDoctrine()->getManager();
$projets = new Projet();
$projets->setNomProjet($request->get('nomProjet'));
$projets->setDescription($request->get('description'));
$projets->setDate($request->get('date'));
$projets->setNombreParticipant($request->get('nombreParticipant'));
$projets->setPartenaire($request->get('Partenaire'));
$em->persist($projets);
$em->flush();
$serializer = new Serializer([new ObjectNormalizer()]);
$formatted = $serializer->normalize($projets);
return new JsonResponse($formatted);
}
有人可以帮我吗?
答案 0 :(得分:0)
此行中的错误:$projets->setPartenaire($request->get('Partenaire'));
您需要首先通过id
获取Partenaire,然后在此处进行设置(而不是实体的id
)。
类似这样的东西:
$partnaireRepo = $em->getRepository(Entity\Partenaire::class);
$partenaire = $partnaireRepo->find($request->get('Partenaire'));
if ($partenaire) {
$projets->setPartenaire($partenaire);
}
这应该有效。