Я застрял в своем проекте Symfony 4. На самом деле у меня есть сущность User, которая реализует Сериализуемый и два serialize
и unserialize
(PHP) метода для сериализации моей сущности.
За исключением того, что в какой-то момент у меня есть проблема круговой ссылки. Я видел, что могу исправить эту проблему, используя «параметр глубины». И этот JMS Serializer легко с ним справился.
Итак, я установил JMS Serializer bundle .
Но после просмотра нескольких сайтов, несколько документов ',Я не понимаю, как мне нужно изменить свою сущность User, чтобы использовать сериализацию JMS вместо 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")
* @MaxDepth(2)
*/
private $ordreMissions;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Entreprise", inversedBy="users")
* @ORM\JoinColumn(nullable=false)
* @MaxDepth(2)
*/
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);
}
Я добавил @ MaxDepth (2) в моих атрибутах " ordreMission " и " entreprises ", и я хотел бы использовать JMS Serializer для сериализации моей сущности, а использовать параметр глубины .
Но я не понимаю, как это сделать