尝试使用 symfony 创建 Web 服务时出现问题
Posted
技术标签:
【中文标题】尝试使用 symfony 创建 Web 服务时出现问题【英文标题】:Problem while trying to create web service with symfony 【发布时间】:2020-09-02 07:34:38 【问题描述】:所以我正在构建一个移动/网络应用程序,其中包含用于网络端的 symfony 框架和用于移动端的代号。尝试运行我的添加函数时遇到错误:“关联字段“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】:错误在这一行:$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);
这应该可行。
【讨论】:
我试图改变它并得到这个错误(类 'PBundle\Controller\Partenaire' 不存在)然后我试图改变这一行 $partnaireRepo = $em->getRepository('PBundle :伙伴关系');并得到另一个错误(errorError: Call to a member function format() on string) 试试$em->getRepository(Entity\Partenaire::class)
或者这个Entity类文件在哪里?以上是关于尝试使用 symfony 创建 Web 服务时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 Azure CLI 创建 Web 应用时出现限制错误
cURL 错误 60:尝试使用 symfony 时出现 ssl 认证问题