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 :

Faire appel tableau service.yaml dans une condition


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Par défaut Faire appel tableau service.yaml dans une condition
    Bonjour à tous,

    J'essaye de mettre en place une liste de pays dans un formulaire (ils ne sont pas tous présent pour mes tests).

    Je veux vérifier si le pays ne fait pas partie de la liste cela affiche un message d'erreur en dessous de mon formulaire.

    Voici mon fichier services.yaml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    parameters:
        locale: 'fr'
        google_private_token: 
        google_public_token: 
        max_login_attempts: 5
        delay_attempts: 60
        file_directory: '%kernel.project_dir%/public/image/articles'
        country: [Albanie, Allemagne, Hongrie]
    Et voici comment je fais la vérification mais cela ne fonctionne pas dans mon controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $country = $request->request->get('country')?? NULL;
    //Verification pays
                if (!preg_match('#^[a-zÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ \']{2,60}$#i',$country) && $country != $this->container->getParameter('country')){
     
                    $errors['country']= 'Pays invalide';
                }
    Avez-vous une solution pour faire ma vérification ?

    Merci d'avance

  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
    Hello,

    Le preg_match n'apporte rien si tu compares à une liste de valeurs acceptées.
    D'autre part tu ne décris pas ton problème (une exception ? un message d'erreur ? tu rentres dans ta condition alors que tu ne voudrais pas ?).

    Ce que je vois c'est que tu compares la valeur de la requête (à priori un pays) à la valeur contenue dans country (à priori un tableau).
    Commence par vérifier que $this->container->getParameter('country') te retourne bien le tableau qui se trouve dans ton fichier parameters.
    Et si c'est le cas vérifie la présence (ou l'absence) de la valeur venant de la requête à l'aide d'un in_array() et non d'un !=.

    Bonne journée.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/02/2016, 15h52
  2. comment créer un tableau dans une condition
    Par paulbach dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 18/12/2015, 01h20
  3. Comment faire pour utiliser plusieurs fonctions logiques dans une condition ?
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/11/2010, 11h37
  4. appel des services web dans une couche WCF
    Par aida1986 dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 26/05/2010, 17h57
  5. appeler un service web dans une servlet
    Par linotte91 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/12/2009, 11h22

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