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 :

Formulaire renvoi valeurs NULL [4.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 356
    Par défaut Formulaire renvoi valeurs NULL
    Bonjour à tous !

    Je suis en train de mettre en place un formulaire d'inscription et je ne sais pas pourquoi mais les données renvoyées au moment de la soumission sont à NULL. Mais là où cela me laisse perplexe, c'est que 2 champs ont quand même les bonnes valeurs : username & password.

    Voici mon code :

    UserController

    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
    class UserController extends AbstractController
    {
        /**
         * @Route("inscription", name="registration")
         */
        public function register(Request $request)
        {
            $user = new User();
            $form = $this->createForm(RegisterType::class, $user);
     
            //Gestion des données renvoyées
            $form->handleRequest($request);
     
            if($form->isSubmitted() && $form->isValid())
            {
                $session = new Session();
     
                $session->set('user', $user);
                $session->set('req', $request);
     
                return $this->redirectToRoute('index');
            }
     
            return $this->render('utils/registration.html.twig', array(
                'registerForm' => $form->createView(),
            ));
        }
    RegisterType (formulaire)

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    class RegisterType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('username', TextType::class, array(
                    'attr' => array('placeholder' => 'Pseudo'),
                    'label' => false
                ))
                ->add('password', RepeatedType::class, array(
                    'type' => PasswordType::class,
                    'invalid_message' => 'Les deux mots de passe doivent être identiques',
                    'required' => true,
                    'first_options' => array('label' => false, 'attr' => array('placeholder' => 'Mot de passe')),
                    'second_options' => array('label' => false, 'attr' => array('placeholder' => 'Confimer le mot de passe'))
                ))
                ->add('email', EmailType::class, array(
                    'attr' => array('placeholder' => 'Email'),
                    'label' => false
                ))
                ->add('firstName', TextType::class, array(
                    'attr' => array('placeholder' => 'Prénom'),
                    'label' => false
                ))
                ->add('lastName', TextType::class, array(
                    'attr' => array('placeholder' => 'Nom'),
                    'label' => false
                ))
                ->add('phoneN1', TelType::class, array(
                    'attr' => array('placeholder' => 'Téléphone fixe'),
                    'label' => false
                ))
                ->add('phoneN2', TelType::class, array(
                    'attr' => array('placeholder' => 'Téléphone mobile'),
                    'label' => false
                ))
                ->add('address', TextType::class, array(
                    'attr' => array('placeholder' => 'Rue'),
                    'label' => false
                ))
                ->add('birthdate', BirthdayType::class, array(
                    'widget' => 'single_text'
                ))
                ->add('city', EntityType::class, array(
                    'class' => City::class,
                    'query_builder' => function(EntityRepository $er){
                        return $er->createQueryBuilder('listCities')
                            ->orderBy('listCities.npa', 'ASC');
                    }
                ))
                ->add('cgu', CheckboxType::class, array(
                    'label' => 'J\'ai lu et j\'accepte les conditions générales d\'utilisation',
                    'mapped' => false
                ))
                ->add('register', SubmitType::class, array(
                    'attr' => array('class' => 'btn btn-primary'),
                    'label' => 'S\'inscrire'
                ))
            ;
        }
    Et je ne sais pas si cela sera utile mais voici l'entité User et le fichier security.yaml

    User

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    /**
     * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
     */
    class User implements UserInterface, \Serializable
    {
        /**
         * @ORM\Id()
         * @ORM\GeneratedValue()
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string", length=50)
         */
        private $username;
     
        /**
         * @ORM\Column(type="string", length=255)
         */
        private $password;
     
        /**
         * @ORM\Column(type="string", length=50)
         */
        private $email;
     
        /**
         * @ORM\Column(type="string", length=50)
         */
        private $firstName;
     
        /**
         * @ORM\Column(type="string", length=50)
         */
        private $lastName;
     
        /**
         * @ORM\Column(type="integer")
         */
        private $phoneN1;
     
        /**
         * @ORM\Column(type="integer", nullable=true)
         */
        private $phoneN2;
     
        /**
         * @ORM\Column(type="string", length=50)
         */
        private $address;
     
        /**
         * @ORM\Column(type="date")
         */
        private $birthdate;
     
        /**
         * @ORM\Column(type="datetime", nullable=true)
         */
        private $lastLogin;
     
        /**
         * @ORM\Column(type="string", length=10, nullable=true)
         */
        private $picture;
     
        /**
         * @ORM\Column(type="string", length=255, nullable=true)
         */
        private $hash;
     
        /**
         * @ORM\Column(type="boolean")
         */
        private $isActive;
     
        /**
         * @ORM\ManyToOne(targetEntity="App\Entity\City", inversedBy="users")
         * @ORM\JoinColumn(nullable=false)
         */
        private $city;
     
        /**
         * @ORM\OneToMany(targetEntity="App\Entity\Postulation", mappedBy="user")
         */
        private $postulations;
     
        /**
         * @ORM\OneToMany(targetEntity="App\Entity\JobOffer", mappedBy="user")
         */
        private $jobOffers;
     
        /**
         * @ORM\OneToMany(targetEntity="App\Entity\Document", mappedBy="user")
         */
        private $documents;
     
        public function __construct()
        {
            $this->postulations = new ArrayCollection();
            $this->jobOffers = new ArrayCollection();
            $this->documents = new ArrayCollection();
        }
    security.yaml

    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
    security:
        encoders:
            App\Entity\User:
                algorithm: bcrypt
        providers:
            #in_memory: { memory: ~ }
            user_provider:
                entity:
                  class: App\Entity\User
                  property: username
        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                anonymous: true
                pattern: ^/
                http_basic: true
                provider: user_provider
                form_login:
                    login_path: login
                    check_path: login
        access_control:
            - { path: ^/admin, roles: ROLE_ADMIN }
            - { path: ^/ajouter-une-annonce, roles: ROLE_USER }
            - { path: ^/gerer-mes-annonces, roles: ROLE_USER }
            - { path: ^/mon-compte, roles: ROLE_USER }
    Merci d'avance !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Il y a quoi dans $request ?

  3. #3
    Membre éclairé Avatar de Charvalos
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 356
    Par défaut
    En fait, c'est tout bon. ^^

    Je cherchais un problème là où il n'y en avait pas. Comme j'utilise \Serializable, j'ai deux fonctions serialize & unserialize qui "serialize" le pseudo et le mot de passe pour la session. Et comme je regarder les données de la session, c'est normal qu'il n'y avait que ces deux valeurs.

    Sinon, je reçois bien toutes les valeurs du formulaire.


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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/12/2009, 13h17
  2. [AC-2007] Interdire valeur nulle dans un champ de formulaire.
    Par Mat08 dans le forum IHM
    Réponses: 1
    Dernier message: 23/09/2009, 09h28
  3. Réponses: 4
    Dernier message: 05/08/2009, 09h23
  4. jointure externe et renvoi de valeurs NULL
    Par ctobini dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 21/09/2006, 10h57
  5. [formulaire] vide quand valeurs nulles
    Par gatsu07 dans le forum IHM
    Réponses: 10
    Dernier message: 02/08/2006, 14h00

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