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 :

Enregistrer createdBy et updatedBy [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut Enregistrer createdBy et updatedBy
    Bonjour,

    J'aimerais enregistrer la date et l'utilisateur qui a fait une modification ou une création dans une table.
    Je voudrais que cette action soit dans la classe, plutôt que dans le contrôleur.

    J'a donc le code suivant :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    namespace Ahs\TicketBundle\Entity;
     
    /**
     * @ORM\Table(name="ahsm_ticket")
     * @ORM\Entity(repositoryClass="Ahs\TicketBundle\Entity\TicketRepository")
     * @ORM\HasLifecycleCallbacks
     */
    class Ticket
    {
      //...
     
        /**
         * @ORM\PrePersist()
         */
        public function onCreate(){
        	$this->setCreatedAt(new \DateTime());
            $this->setCreatedBy( ?? );
        }    
     
        /**
         * @ORM\PreUpdate()
         */    
        public function onUpdate(){
        	$this->setUpdatedAt(new \DateTime());
            $this->setUpdatedBy( ?? );
        }
    }
    Je voudrais donc récupérer l'utilisateur dans les méthodes onCreate() et onUpdate()

    Sauriez vous comment faire ?
    Merci pour votre aide,

    Gillou.

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    Bonjour,

    Pour arriver à ce que tu souhaites, les lifecycles ne suffisent pas.

    Tu n'as accès qu'à ton objet et rien d'autre.

    Il va falloir utiliser un listener Doc Listener et y injecter le container, car tu ne pourras pas injecter le security.context.

    Le secury.context appelle l'entity manager pour récupérer ton utilisateur en général et donc tu te retrouves à une référence cyclique.

    Bon Dev

  3. #3
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    C'est magique !
    Merci.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    les extensions doctrine Blameable et Timestampable permettent cela via quelques annotations:
    http://symfony.com/doc/current/cookb...xtensions.html
    https://github.com/stof/StofDoctrine.../doc/index.rst

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

Discussions similaires

  1. Perte d'enregistrements
    Par AnnSo dans le forum Paradox
    Réponses: 15
    Dernier message: 06/08/2006, 23h39
  2. [VB6] [Crystal] Selection enregistrement
    Par littlecow dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/01/2005, 13h08
  3. Enregistrer un RichEdit dans un .Txt
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2002, 11h52
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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