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 :

problème de ponctuation


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut problème de ponctuation
    Bonsoir,

    je suis débutante en développement de SF 2.7. alors je suis entrain de récupérer l'id d’après url pour l'envoyer vers le route qui correspond.

    Voilà l'url qui permet de rediriger vers la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="{{ path('form_delete',{'id': grd.id } ) }}">
    Voilà le problème est ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    43  {% set url_id = {{app.request.query.get("id") | url_encode(true) }}  %}
    44-  <form method="post" action=" {{ path('delete_grade',{'id': url_id } ) }}" > <! -- le probléme proviens d'ici -->
     
    // ***Error
    A hash key must be a quoted string, a number, a name, or an expression enclosed in
     parentheses (unexpected token "punctuation" of value "{" in GradeBundle::delete.html.twig at line 43.
    Merci de résoudre le problème .

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    Merci de résoudre le probléme .
    chef oui chef !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {% set url_id = {{app.request.query.get("id") | url_encode(true) }}  %}
    {{ et }} sont de trop !

  3. #3
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    Merci, j'ai résolu ce probléme mais un autre message d'erreur il est affiché

    An exception has been thrown during the rendering of a template ("Parameter "id" for route "delete_grade" must match "[^/]++" ("" given) to generate a corresponding URL.") in GradeBundle::delete.html.twig at line 44.
    la route:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    delete_grade:
         path:     /delete/{id}
         defaults: { _controller: GradeBundle:Default:deleteGS}
         methods: [GET]
    -le code de mon vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     43-  
    {% set url_id = app.request.query.get("id") | url_encode(true)  %}
     44-  <form method="post" action=" {{ path('delete_grade',{'id': url_id } ) }}" >
    Merci e m'aider

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    à mon avis url_id est null, un truc comme ça.

    pour savoir tu peux tester ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {% set url_id = app.request.query.get("id") | url_encode(true)  %}
     
    url_id={{ dump(url_id) }}

  5. #5
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    j'ai essayé votre proposition mais toujours le méme probléme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      44- {% set url_id = app.request.query.get("id") | url_encode(true)  %}
     
      45- url_id={{ dump(url_id) }}
     
      46- <form method="post" action=" {{ path('delete_grade',{'id': url_id } ) }}" >
    l'erreur:
    An exception has been thrown during the rendering of a template ("Parameter "id" for route "delete_grade" must match "[^/]++" ("" given) to generate a corresponding URL.") in GradeBundle::delete.html.twig at line 46.

  6. #6
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    normal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    44- {% set url_id = app.request.query.get("id") | url_encode(true)  %}
     
    45- {{ dump(url_id) }}
     
    46- <form method="post" action=" {{ path('delete_grade',{'id': url_id } ) }}" >

    ligne 45 : le but etant d'afficher url_id pour voir ce qu'il y a dedans.

    si la ligne 46 est presente, ça reste bloqué sur cette erreur. (et tu ne vois pas ce qui est affiché par le dump de la ligne 45)
    tu dois donc enlever pour le test le code à partir de la ligne 46

  7. #7
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    toujours le méme probléme mon ami
    An exception has been thrown during the rendering of a template ("Parameter "id" for route "delete_grade" must match "[^/]++" ("" given) to generate a corresponding URL.") in GradeBundle::delete.html.twig at line 48.
    j'ai essayé cette solution mais rien a changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {% set url_id = app.request.query.get("id") | url_encode(true)  %}
     
    {% set url_id %}
    <form method="post" action=" {{ path('delete_grade',{'id': dump(url_id) } ) }}" >
     
    {% endset %}

  8. #8
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    houl a, tu ne comprends pas.

    si tu as le meme message c'est que tu as laissé le code du form .....

    as tu bien compris le but du test ?



    qu'est ce que donne ce code là et rien d'autre !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {% set url_id = app.request.query.get("id") | url_encode(true)  %}
     
    {{ dump(url_id) }}

  9. #9
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    il m'affiche rien ce code:

    l'url de l'action :http://xxx.xxx.xx.x:XXXX/delete/2

    Nom : aa.png
Affichages : 1170
Taille : 18,4 Ko

  10. #10
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    et bien ce que je disais à mon premier post.


    tu passes une valeur qui vaut rien.

    url_id vaut rien, y'a pas un soucis ?

  11. #11
    Membre habitué
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Points : 127
    Points
    127
    Par défaut
    d'aprs la recherche, j'ai changé la méthode de la suppression,
    Ici le lien qui permet d'ouvrir la modalbox de la confirmation du suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="{{ path('delete_grade',{'id': grd.id } ) }}">
    j'ai développé l'action delete qui permet a chaque fois si méthode "GET" donc il affiche le dialogue de confirmation puis l'utilisateur clique sur le bouton "supprimer" après le systéme redirige vers l’accueil. SI non, le systéme fait le traitement du suppression de l'items.
    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
     public function deleteAction($id)
        {
     
            // On récupère le grade $id
            $ems=$this->getDoctrine()->getManager();
            $grade=$ems->getRepository('GradeBundle:Grades')->find($id);
     
            $request = $this->get('request');
     
              $form = $this->createFormBuilder()->getForm();
     
            if ($form->handleRequest($request)->isValid()) {
     
                if (!$grade) {
                    throw new NotFoundHttpException(" le grade d'id ".$id." n'existe pas.");
                }
     
                $ems->remove($grade);
                $ems->flush();
     
                $request->getSession()->getFlashBag()->add('info', "L'annonce a bien été supprimée.");
     
                return $this->redirect($this->generateUrl('grade_homepage'));
            }
                // Si la requête est en GET, on affiche une page de confirmation avant de supprimer
                return $this->render('GradeBundle::delete.html.twig', array(
                    'grade' => $grade,
                    'form'   => $form->createView()
                ));
     
        }
    -le code de mon vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form action="{{ path('delete_grade', {'id': grade.id}) }}" method="post">
     
      <input type="submit" value="Supprimer" class="btn btn-danger" />
       {{ form_rest(form) }}
                  </form>
    - Mon route:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    delete_grade:
         path:     /delete/{id}
         defaults: { _controller: GradeBundle:Default:delete}
    ==> lorsque je clique sur le lien les données de l'item qui sera supprimé sont bien traité dans la modalbox mais lorsque je clique sur le bouton supprimer il affiche ce message d'error:
    An exception occurred while executing 'DELETE FROM grades_info WHERE id_status = ?' with params [5]:

    SQLSTATE[HY000]: General error: 5 database is locked
    500 Internal Server Error - DriverException
    2 linked Exceptions: PDOException » PDOException »
    j'arrive pas a résoudre le probléme merci de m'aider encore

  12. #12
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    An exception occurred while executing 'DELETE FROM grades_info WHERE id_status = ?' with params [5]:

    SQLSTATE[HY000]: General error: 5 database is locked
    c'est une erreur SQL

    essais dans phpmyadmin cette requete
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM grades_info WHERE id_status = 5

    tu verras que ça fait une erreur, à toi d'investiguer

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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