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 :

appel d'un callback à l'intérieur d'une collection [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
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Par défaut appel d'un callback à l'intérieur d'une collection
    Bonjour,
    J'ai créé un formulaire basé sur une entity et dans cette entity j'ai créé une méhode de validation callback personnalisée.
    Quand je valide mon formulaire, il appelle bien ma méthode callback et déclenche mon exception si besoin.

    Maintenant j'ai créé un autre formulaire mais qui est composé d'une collection du premier formulaire.
    Lorsque je valide ce nouveau formulaire, il n'appelle pas la méthode callback de mon entity.
    Comment on peut faire pour qu'il l'appelle ?
    J'ai testé avec un assert "basic" (genre @Assert\NotBlank) et non un callback personnalisé, c'est pareil, donc ça ne vient pas de mon callback...

    Merci de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    Par défaut
    je pense que tu devrais faire un listener personnaliser

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    je pense que tu peux egalement creer ta propre service validator.
    une methode qui prend en parametre $form->getData(); , qui la parcours et retourne un array d'erreur s'il y on a.
    Dans ton controlleur , au lieu d'ecrire $form->isValid , tu verifie si array erreur est vide et tu renvoie leurs message à la vue.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Par défaut
    Merci de vos réponses
    J'ai créé mon propre validator et ça fonctionne.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut
    Salut,

    La discussion est résolue, mais je pense que tu as une solution plus simple pour résoudre ton soucis.

    Si ton autre formulaire est basé sur une "entity". Il te faut ajouter l'annotation "@Assert\Valid" sur l'attribut qui correspond à ta collection.

    Si ton autre formulaire n'est pas basé sur une "entity". Il te faut ajouter une contrainte dans la méthode "buildForm" de ton formulaire. Exemple pour la version 2.8:
    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
     
    <?php
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\Extension\Core\Type;
    use Symfony\Component\Validator\Constraints as Assert;
     
    class MyFormType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add("collection", Type\CollectionType::class, [
                    "entry_type" => MyCollectionType::class,
                    "constraints" => [
                        new Assert\Valid(),
                    ]
                ]);
        }
    }
    ?>
    Lien vers la doc: http://symfony.com/doc/current/refer...nts/Valid.html

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

Discussions similaires

  1. Appel d'un fichier js externe à l'intérieur d'une fonction javascript
    Par tanaka76 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 07/03/2012, 19h05
  2. [WPF] Valeur par défaut d'une DependencyProperty n'appelle pas le callback
    Par HanLee dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 01/04/2010, 21h36
  3. Réponses: 4
    Dernier message: 25/03/2008, 16h00
  4. Réponses: 2
    Dernier message: 16/02/2007, 18h49
  5. Réponses: 2
    Dernier message: 10/12/2004, 15h43

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