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 :

Contrainte de validation ignorée - Symfony


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut Contrainte de validation ignorée - Symfony
    Bonjour tout le monde,

    Je rencontre un problème concernant une validation sur une propriété "content", un message de type text.

    La longueur minimum de 2 sur un message avec le new Length est ignorée. Par contre le notBlank fonctionne.

    A noter que j'utilise CKeditor. J'ai testé avec un textAreaType, les validations fonctionnent correctement.

    Quand j'utilise le debugger Validator sur mon entité j'ai bien le Min Length affiché

    Nom : Capture.PNG
Affichages : 563
Taille : 4,3 Ko
    Les contraintes ont été insérés sur le formtype et l'entité. Je ne comprends pas pourquoi ça ne fonctionne pas.

    Si vous avez une idée je suis preneur.

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Je me permets de relancer le sujet. Je bloque dessus complet. Il doit y avoir quelque chose avec le CKEditor qui pose problème mais je ne sais pas quoi.

    J'ai essayé de voir ici mais rien trouvé

    https://symfony.com/bundles/FOSCKEdi...ent/index.html

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Bonjour,

    Ce sujet commence à dater, mais s'il est encore d'actualité, on peut voir pour ce champ le code de l'entité et du formtype ?

    Pour moi, je n'ai pas là mon code sous la main, mais dans un projet, j'ai un max dans une entité pour un champ avec CKeditor, et ça marche nickel.

    Donc tu peux nous montrer ton code stp ?

    Merci d'avance.

  4. #4
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Bonjour,

    Merci pour ton retour. J'ai pas réussi à régler le problème. Voilà le code de l'entité post avec la propriété content :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /**
         * @ORM\Column(type="text")
         * @Assert\NotBlank(message = "Le message ne doit pas être vide")
         * @Assert\Length(min = 3, minMessage = "Le message doit faire au minimum {{ limit }} caractères")
         */
        private $content;
    Le code du formType :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function buildForm(FormBuilderInterface $builder, array $options)
        {       
            $builder
            ->add('content', CKEditorType::class, [            
                'label' => false,
                ]);
        }
    En l’occurrence ici c'est le notBlank qui fonctionne mais le Length est ignoré.
    Le problème c'est qu'en plus je peux envoyer un message avec que des espaces vides.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Bizarre bizarre : j'ai un code similaire, juste quelques options en plus dans mon formtype, et ça marche :

    entité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /**
         * @ORM\Column(name="texte", type="text")
         * @Assert\NotBlank
         * @Assert\Length(min = 100, minMessage = "Ce champ doit faire minimum {{ limit }} caractères.")
         * @Assert\Length(max = 200, maxMessage = "Ce champ ne peut pas dépasser {{ limit }} caractères.")
         */
        private $texte;
    formtype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $builder->add('texte', CKEditorType::class, array(
                    'label' => 'Texte',
                    'config_name' => 'default',
                    'config' => array('height' => "400px"),
                    'required' => false,
                    'empty_data' => ''
                ))
    j'ai essayé en enlevant mon required et mon empty_data, ça marche quand même !

    Une piste qui me vient, au cas où ça serait ça.
    Pour installer CKeditor, est ce que tu fais bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    php bin/console ckeditor:install
    php bin/console assets:install
    Peut être qu'il faut réinstaller les assets...

  6. #6
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Je jetterai un oeil pour l'install, ça fait un moment que je l'ai fais mais probablement que j'ai oublié les assets.

    Un collègue m'avait dit également que faire de l'ajax avec un ckeditor lui a posé pas mal de problèmes, j'imaginais donc que ca venait du CKeditor.

    Je referai l'install et reposterai si besoin.

    Merci pour ta réponse

  7. #7
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Alors j'ai réinstallé CKeditor et j'ai le même problème.

    Voici les étapes que j'ai fait :
    1) désinstaller ckeditor avec "composer remove friendsofsymfony/ckeditor-bundle"
    2) "php bin/console ckeditor:install" à ce moment là j'ai eu le message suivant : "There are no commands defined in the "ckeditor" namespace."
    3) J'ai donc fait la commande composer require friendsofsymfony/ckeditor-bundle"

    J'ai retesté mes champs et toujours le même problème.

    J'ai aussi suivi la réponse sur un post Github : Insérer la ligne "FOS\CKEditorBundle\FOSCKEditorBundle::class => ['all' => true]," sur config/bundles.php
    et insérer php bin/console ckeditor:install" sur l'invite de commandes

    https://github.com/FriendsOfSymfony/...dle/issues/229

    à ce moment là j'ai ce message là :
    Nom : Capture.PNG
Affichages : 495
Taille : 12,2 Ko

    Note : J'ai tout refait de 0. composer require, php bin/console ckeditor:install, php bin/console assets:install public. Le problème persiste. J'ai toujours une contrainte seulement qui est prise en compte

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Bonjour,

    Pour ton message d'erreur, as tu le use suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use FOS\CKEditorBundle\Form\Type\CKEditorType;
    Une piste : Est ce que tu as l'option input_sync pour ton champ ?
    Doc ici : https://symfony.com/bundles/FOSCKEdi...area-sync.html

    Et plus globalement, est ce que les menus de ckeditor s'affichent bien pour ton champ ?
    Et les options mettent bien ton texte en forme ?
    Si oui, ckeditor est bien installé et fonctionnel, il faudra chercher ailleurs...

  9. #9
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    1) Oui j'ai bien le use, j'ai aussi rajouté le input_sync à true dans le formtype comme dans la doc que tu m'as donné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ->add('content', CKEditorType::class, [   
                'input_sync' => true,     
                'label' => false,
                'constraints' => [
                    new Length(['min' => 3, 'minMessage' => 'Le message doit faire au minimum {{ limit }} caractère']),
                    new NotBlank(['message' => 'Le message ne doit pas être vide'])
                ]
                ]);
    Sinon les menus s'affichent bien et les options sont bien pris en compte oui.

    Nom : Capture.PNG
Affichages : 485
Taille : 15,8 Ko

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Ok, merci pour ces infos et pour le code. Ckeditor fonctionne bien, c'est déjà ça

    Alors, je vois que tu mets tes contraintes dans le add de ton champ, ce que je n'ai jamais essayé de faire.
    Pour moi, mes contraintes sont uniquement au niveau de mon entité, comme dans l'un de mes posts ci dessus.
    Point de vue bonnes pratiques, je ne sais pas ce qui est le mieux. Comme moi ça marche, je n'ai pas cherché plus loin !

    ça m'intrigue ta façon de faire, j'essaierai comme tu fais ce weekend. Je te dis dès que j'ai un résultat...

  11. #11
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Je te remercie pour ton retour.

    Alors pour les contraintes je viens de les modifier sur le conseil d'un ami qui m'a dit qu'elles doivent se mettre dans le formType au lieu des entités. Le résultat a l'air d'être le même en tout cas.

    Nickel je reste dans les parages

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 156
    Par défaut
    Je viens de faire des tests, je suis bloqué de la même façon en mettant des asserts dans mon entité, ou en mettant des constraints dans mon form builder.
    Dans les 2 cas, j'ai bien le message d'erreur pour mon champ.

    Je ne vois pas pourquoi tu n'as pas ces blocages. Là je sèche, désolé...

  13. #13
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    C'est pas grave si j'ai une autre piste et qui j'ai la trouvé la solution d'ici là je la posterai mais je vois pas non plus...

    Merci pour ton aide en tout cas

Discussions similaires

  1. Symfony Validator sans Symfony
    Par foxdie dans le forum Doctrine2
    Réponses: 1
    Dernier message: 27/06/2012, 07h54
  2. Contrainte de validation
    Par REMACC1 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/04/2009, 16h32
  3. [1.x] Validator Formulaire Symfony
    Par smusta dans le forum Symfony
    Réponses: 2
    Dernier message: 21/04/2009, 20h31
  4. Recherche d'une contrainte de validation
    Par Pilloutou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2007, 12h07

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