Bonjour,

J'ai une entité Users et une entité Document. L'entité Document comme son nom l'indique contient entre autre le nom et path de toute sorte de document (image, pdf, docx etc...).

Un utilisateur peut être propriétaire de 1 ou plusieurs document.
Un utilisateur peut avoir zéro ou une photo de profil.

J'ai donc traduit cela, comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
class User implements AdvancedUserInterface, \Serializable
{
...
	/**
  	 * @ORM\OneToOne(targetEntity="***\MainBundle\Entity\Document")
  	 * @ORM\JoinColumn(name="photoProfil_id", referencedColumnName="id", nullable=true)
  	 */
  	protected $photoProfil;
 
  	/**
  	 * @ORM\OneToMany(targetEntity="***\MainBundle\Entity\Document", mappedBy="owner")
  	 */
  	protected $files;
...
}
et mon entité Document :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
class Document
{
   ...
 
 /**
     * @ORM\OneToOne(targetEntity="Document")
     * @ORM\JoinColumn(name="remplacementDocument_id", referencedColumnName="id", nullable=true)
     */
    private $remplacementDocument;
 
 
/**
     * @ORM\ManyToOne(targetEntity="***\UsersBundle\Entity\User", inversedBy="files")
     * @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
     */
    private $owner;
...
}
remplacementDocument est à la base un champ qui peut être null afin de gérer l'obsolescence d'une photo, en gros si on remplace une document existant, j'ajoute le nouvel id dans ce champs ce qui m'évite de le supprimer les documents et les retrouver plus tard si besoin.

Mon soucis est que je n'arrive pas à rendre les relations OneToOne nullable=true, quand je génère ma BDD il me rend se champs obligatoire et je ne peux pas le modifier.
Or mes règles de gestion sont :
- un utilisateur peut avoir 0 ou 1 photo de profil.
- un document peut avoir été remplacer par 0 ou 1 (une relation récursive ici)

Avez vous une idée afin de résoudre se problème ? ca m'empêche de persister mon entité quand je ne met pas de photo et ceci même si je met le champs requiert à false.