У меня есть класс с именем "застрахованный объект", у которого есть двое детей "автомобиль" и "дом", и этот "застрахованный объект" имеет отношение один к одному с "контрактом". Идея заключается в том, что когда пользователь хочет добавить контракт, он должен указать его тип, будь то автомобиль или дом, и добавить его в базу данных в соответствии с его типом. Так, во время работы над API (редактирующим) возникла проблема, когда я хочу выбрать автомобиль для редактирования, он показывает мне эту ошибку ошибка, когда я выполняю API
это API редактирования автомобиля.
/**
* @Route("/api/editVoiture/{id}", name="editVoiture", methods={"PUT"})
*/
public function editVoiture($id, Request $request, EntityManagerInterface $em,ObjetAssureRepository $objetAssureRepository, VoitureRepository $voitureRepo)
{
$request = Request::createFromGlobals();
$jsonRecu = $request->getContent();
try {
$donnees = json_decode($jsonRecu);
$voiture = $voitureRepo->findVoitureById($id);
if($voiture != null){
$voiture->setDateAcquisition($donnees->dateAcquisition);
$voiture->setDateProduction($donnees->dateProduction);
$voiture->setMarque($donnees->marque);
$voiture->setNumChassis($donnees->numChassis);
$voiture->setPuissance($donnees->puissance);
$voiture->setModele($donnees->modele);
$em->persist($voiture);
$em->flush();
$objAss = $objetAssureRepository->findObjet($voiture->getId(),"voiture");
$objAss->setDateAcquisition($donnees->dateAcquisition);
$objAss->setDateProduction($donnees->dateProduction);
$em->persist($objAss);
$em->flush();
return new Response('ok', 200);
} else {
return new Response('does not exist',404);
}
} catch (UniqueConstraintViolationException $e) {
return $this->json([
'status' => 400,
'message' => $e->getMessage(),
], 400);
}
}
, а это код репозитория
/**
* @return Voiture
*/
public function findVoitureById($id): ?Voiture
{
return $this->createQueryBuilder('v')
->andWhere('v.id = :id')
->setParameter('id',$id)
->getQuery()
->getOneOrNullResult()
;
}