IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Relation OneToOne nullable [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Relation OneToOne nullable
    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.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Bonjour, tu pourrais me dire comment t'as résolu ton problème car j'ai le même.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EJB3.1] Plusieurs relation OneToOne vers la même entité.
    Par piemur2000 dans le forum Java EE
    Réponses: 1
    Dernier message: 11/01/2011, 09h05
  2. probleme avec une relation OneToOne
    Par aniss77 dans le forum JPA
    Réponses: 1
    Dernier message: 01/04/2010, 22h07
  3. Relation OneToOne en HQL
    Par aigleborgne dans le forum JPA
    Réponses: 1
    Dernier message: 04/09/2009, 14h18
  4. Réponses: 1
    Dernier message: 16/12/2008, 14h38
  5. [Nhibernate] Relation OneToOne
    Par Vercity dans le forum NHibernate
    Réponses: 1
    Dernier message: 12/03/2007, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo