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 :

Cloner une Entity


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Par défaut Cloner une Entity
    Hello tous le monde je viens vers vous car je dois intervenir sur une application Symphony 2 et j'ai un peu de mal pour cloner un élément .

    Pour résumer je récupére un élément Form avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_formRepository->getFormById($id)
    et cet élément possé des Entity Page, Page posséde encore d'autre élément etc... et cela en cascade

    J'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $formSelect = $this->_formRepository->getFormById (9);
    $copy = clone $formSelect[0];
    $this->_em->persist($copy);
    $this->_em->flush();
    Mais seulement le Form est cloné dans la base et non les Entity enfant quelqu'un connait une méthode pour faire cela un cascade ou a une piste ?

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    je suis curieux de connaitre la raison du clonage ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $formSelect = $this->_formRepository->getFormById (9);
    $this->_em->persist($$formSelect[0]);
    $this->_em->flush();

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Par défaut
    Malheureusement sa ne fonctionne pas : J'ai une erreur comme quoi l'object ne peut être convertie en string.

    Pour ce qui est du besoin c'est une demande de client de pouvoir dupliquer certains éléments

  4. #4
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut Lazy loading
    par defaut doctrine ne charge pas les objets liés mais plutôt il utilise une technique de proxy qui s'en charge de les charger à la demande

    sinon y'a une methode dite magique dans php qui peurrait être utile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function __clone() {}
    dedans tu peux surcharger la logique de clonage de ton objet

  5. #5
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    et bien la première chose à faire est d'analyser ce que tu récupère de la base pour cela utilise la fonctionne dump

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    $formSelect = $this->_formRepository->getFormById (9);
    dump($formSelect); exit;
    ...

    dupliquer ? j'ai un objet. j'en veux 10, pour quoi faire ? demande dans quel but ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Par défaut
    Je ne peut pas tous expliquer mais en gros ils générents des éléments par exemple des formulaire
    et il veulent les dupliquer certain son très complexe mais il faut en refaire avec juste un ou deux éléments qui change.

    J'ai essayé de surcharger le clonnage mais je dois modifier tellement d'entité enfant en cascade que j'ai des problèmes de max execution time --"

  7. #7
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    désolé de dire ça mais cloner des objets comme ça c'est tout pourrie et quand c'est tout pourrie au lieu de se borner il vaut mieux réfléchir à une meilleure façon de faire.

    je fais une entiteA et entiteB(avec les changements) qui hérite de entiteBase.
    je fais formAType, et formBType (bien sur avec les changements adéquats) qui hérite de FormBaseType.

    je récupère entiteA de formAType
    je transfert les données de entiteA dans entitéB (en prenant en compte les changements)
    j'associe entiteB a formBType(pour afficher formBtype si besoin)


    comme ça je peux persister les 2 types et même afficher les formulaires dans twig si nécessaire.

Discussions similaires

  1. génération de requete dynamique dans une entitie
    Par osman.amine dans le forum Struts 1
    Réponses: 3
    Dernier message: 12/06/2007, 13h52
  2. Récuperer les vertice d'une Entity
    Par clemsye dans le forum Ogre
    Réponses: 5
    Dernier message: 10/03/2007, 14h30
  3. Cloner une base
    Par Rocou dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 06/03/2007, 19h14
  4. Cloner une image ...
    Par sheik dans le forum 2D
    Réponses: 4
    Dernier message: 16/03/2006, 09h17
  5. [Jonas] Impossible de déployer une Entity Bean CMP2
    Par blockparty dans le forum JOnAS
    Réponses: 2
    Dernier message: 01/12/2005, 15h45

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