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 :

Type de champ Collection - Ne pas afficher les objects existants [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut Type de champ Collection - Ne pas afficher les objects existants
    Bonjour,

    Comment faire pour ne pas afficher les champs des objets sous-jacents déjà existants, dans une collection form ?

    Ce que je ne veux pas : voir pj1
    Ce que je veux : voir pj2

    Merci
    Images attachées Images attachées   

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Pourquoi ne pas masquer les formulaires des objets existants dans la vue ?

    Je pense qu'il est indispensable que ces éléments soient présent dans le <form> quand tu soumettras ton formulaire pour éviter qu'une collection incomplète n'écrase la précédente.

    Ou alors, deuxième cas de figure : si tu n'ajoutes tes éléments à ta collection que un par un, tu aurais plus vite fait de faire un formulaire se basant sur un nouvel élément de la collection en assignant toi même le parent.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Salut Nico_F,

    Merci de ta réponse.

    tu aurais plus vite fait de faire un formulaire se basant sur un nouvel élément de la collection en assignant toi même le parent.
    Je veux bien, mais concrètement comment on fait ? Est-ce que tu peux expliciter un peu plus ou me montrer un exemple qui se rapproche ? Merci.

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Concrètement au lieu de faire un formulaire de l'entité A possédant une collection de B, tu fais juste un formulaire de B.

    Tu peux configurer ton formulaire de manière à avoir une liste de choix sur l'entité A (le parent). Ou bien tu l'assignes toi même dans ton contrôleur, après avoir récupérer le formulaire et l'avoir bindé à ton objet B. juste avant ton persist(), il te suffit de faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // $objA = ... récupère ton objet A comme tu veux, par id en faisant une requête...
    $objB->setA($objA);
    $entityManager->persist($objB);

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 351
    Par défaut
    Salut Nico_F,

    Merci de ta réponse.

    Comme tu pourra le constater sur les pj suivantes il s'agit en fait de champs file (contrairement à ce que j'avais mis dans les pj du premier post, pour simplifier j'avais illustré mon propos avec des champs text simple, mais de toute façon ça revient au même).

    J'ai essayé ta solution et ça fonctionne bien avec un seul champ voir pj1 (le fichier s'ajoute bien au autres fichiers de l'arrayCollection) mais je n'arrive pas à la faire fonctionner avec une collection de champs : J'obtiens bien la vue voir pj2 (c'est ce que je voudrais obtenir) mais lorsque j'envoie le formulaire ça me retourne cette erreur voir pj3, à ton avis à quoi peut-être dut ce type d'erreur ? je comprend que ça vient du mapping mais le mapping de quoi exactement, je ne comprend pas bien .

    Pour reprendre ton exemple, j'ai en fait : entitéA : Categorie, entitéB : Fichier (relation OneToMany Bidirectionnelle)

    Merci.
    Images attachées Images attachées    

  6. #6
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Je ne trouve pas très naturel d'ajouter à la collection d'un objet une autre collection qui n'y est pas rattachée. Soit tu ajoutes un seul élément et tu lui dis qui est le parent, soit tu prends la collection toute entière et tu l'édites en ajoutant autant d'éléments nouveaux que tu souhaites.

    Rajouter plusieurs éléments à une collection revient à éditer la collection, ce qui veut dire que tous les éléments de ta collection devront être présents dans le formulaire. Mais rien ne t’empêche de les cacher coté vue. Donc je te suggérerais plutôt de partir sur un formulaire de collection si tu veux en ajouter plusieurs à la fois et de masquer ce que tu ne veux pas voir, en CSS par exemple.

    Pour ton erreur je pense que le code de ton FormType et celui du traitement du formulaire permettraient d'identifier plus facilement ce qui coince.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/07/2013, 10h23
  2. Réponses: 2
    Dernier message: 15/03/2009, 22h52
  3. [MySQL] Ne pas afficher les Warnings du type mysql_connect, mysql_query,etc.
    Par brunoperel dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/09/2007, 15h42
  4. [Sécurité] Ne pas afficher les variables de l'URL
    Par Wormus dans le forum Langage
    Réponses: 17
    Dernier message: 23/10/2005, 14h13
  5. [JTable] Comment ne pas afficher les titres ?
    Par FabienBxl dans le forum Composants
    Réponses: 3
    Dernier message: 08/10/2003, 15h01

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