尝试使用symfony创建网络服务时出现问题

时间:2020-05-16 12:34:14

标签: sql json symfony doctrine-orm

所以我正在构建一个带有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);
    }

有人可以帮我吗?

1 个答案:

答案 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);
}

这应该有效。

相关问题