您好,我遇到了一个导致此错误的问题:
序列化对象的对象时检测到循环引用类“ App \ Entity \ User”(配置的限制:1)
我有一个拥有任务订单,车辆和用户的企业实体。
与用户,公司和车辆有关系的订单实体。
以及与订单和公司有关系的用户实体。
所以我有这个:Entreprise.php
class Entreprise { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="entreprise", orphanRemoval=true) */ private $users; /** * @ORM\OneToMany(targetEntity="App\Entity\Vehicule", mappedBy="entreprise", orphanRemoval=true) */ private $vehicules; /** * @ORM\OneToMany(targetEntity="App\Entity\OrdreMission", mappedBy="entreprise", orphanRemoval=true) */ private $ordreMissions;
OrdreMission.php:
class OrdreMission { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * Agent qui réalisera la mission * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="ordreMissions") * @ORM\JoinColumn(nullable=false) */ private $user; /** * Immatriculation de la voiture de service * @ORM\ManyToOne(targetEntity="App\Entity\Vehicule") */ private $vehicule; /** * @ORM\ManyToOne(targetEntity="App\Entity\Entreprise", inversedBy="ordreMissions") * @ORM\JoinColumn(nullable=false) */ private $entreprise;
Vehicule.php:
class Vehicule { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * Marque du véhicule * @ORM\Column(type="string", length=255) */ private $marque; /** * Modèle du véhicule * @ORM\Column(type="string", length=255) */ private $modele; /** * Immatriculation du véhicule * @ORM\Column(type="string", length=255) */ private $immatriculation; /** * @ORM\ManyToOne(targetEntity="App\Entity\Entreprise", inversedBy="vehicules") * @ORM\JoinColumn(nullable=false) */ private $entreprise;
User.php:
class User implements UserInterface, Serializable { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * Adresse email de l'utilisateur * @ORM\Column(type="string", length=180, unique=true) * @Assert\NotBlank() * @Assert\Email(message="Veuillez renseigner un email valide") */ private $email; /** * Rôles de l'utilisateur * @ORM\Column(type="json") */ private $roles = []; /** * Ordres de mission de l'utilisateur * @ORM\OneToMany(targetEntity="App\Entity\OrdreMission", mappedBy="user") */ private $ordreMissions; /** * @ORM\ManyToOne(targetEntity="App\Entity\Entreprise", inversedBy="users") * @ORM\JoinColumn(nullable=false) */ private $entreprise; /** * String representation of object * @link http://php.net/manual/en/serializable.serialize.php * @return string the string representation of the object or null */ public function serialize() { return serialize([ $this->id, $this->email, $this->password, ]); } /** * Constructs the object * @link http://php.net/manual/en/serializable.unserialize.php * @param string $serialized <p> * The string representation of the object. * </p> * @return void */ public function unserialize($serialized) { list ( $this->id, $this->email, $this->password, ) = unserialize($serialized); }
[当我想添加新车时,出现错误:
序列化对象的对象时检测到循环引用类“ App \ Entity \ User”(配置的限制:1)
[我在互联网上看到我必须以“最大深度”来做某事,但我不知道我该做些什么,以及确切地在哪里
更新:
这是我用来添加Vehicle Object并将其发送的功能控制器:
/**
* Pour créer un nouveau véhicule
*
* @Route("/chef-service/ordres-mission/new/new-vehicule", name="vehicule_create")
* @IsGranted({"ROLE_CHEF_SERVICE"})
* @Method({"POST"})
* @return Response
*/
public function createVehicule(Request $request, EntityManagerInterface $manager)
{
$vehicule = new Vehicule();
$vehicule->setEntreprise($this->adminService->getEntreprise());
$form = $this->createForm(VehiculeType::class, $vehicule, [
'action' => $this->generateUrl($request->get('_route'))
])
->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$encoders = array(new XmlEncoder(), new JsonEncoder());
$normalizers = array(new ObjectNormalizer());
$serializer = new Serializer($normalizers, $encoders);
$manager->persist($vehicule);
$manager->flush();
$jsonContent = $serializer->serialize(
[
'code' => 200,
'message' => 'OK',
'vehicule' => $vehicule,
],
'json'
);
return new Response($jsonContent);
}
return $this->render('ordre_mission/partials/newVehicule.html.twig', [
'formVehicule' => $form->createView(),
]);
}
你好,我遇到一个给我这个错误的问题:序列化类“ App \ Entity \ User”(配置限制:1)的对象时,检测到循环引用(我有一个企业...
尝试通过使用序列化组来避免循环引用(对于Symfony序列化器和jms序列化器均有效)。当您序列化“用户”而不序列化其他实体的“用户”时的示例。
用户