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 :

Supprimer un champ et retourner sur la page


Sujet :

Symfony PHP

  1. #1
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut Supprimer un champ et retourner sur la page
    Bonjour,

    Maintenant que j'affiche mes champs depuis ma table, je voudrais ajouter un bouton à côté pour les supprimer.
    C'est une liste de tâche, avec id, tâche et date. J'ajoute la tâche via un champ de formulaire dans ma BDD, et j'affiche le tout sur ma page dans un tableau.
    Le soucis, c'est que j'ai supprimé tous les champs d'un coup...

    Voici la fonction du controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        public function delTask(Request $request, $id)
        {
     
            $entityManager = $this->getDoctrine()->getManager();
            $del = $entityManager->getRepository("App\Entity\TaskList")->find($id);
     
            $entityManager->remove($del);
            $entityManager->flush(); 
     
            return $this->redirectToRoute('todo');
     
        }
    Et le lien que j'utilise dans le tableau pour supprimer le champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="{{ render(controller('App\\Controller\\TodoController::delTask', { 'id': record.id} )) }}">Supprimer</a>
    Pourquoi ais-je supprimé tous les champs ? Je ne récupère pas le bon id ?

    Merci d'avance,
    Cordialement,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    Je pense que tu utilises la mauvaise méthode pour générer la valeur de ton href, en fait la méthode render() exécute le contrôleur passé en paramètre (cf. https://symfony.com/doc/current/temp...ntrollers.html), dans ton cas le contrôleur supprime la Task correspondante à l'ID passé en paramètre. À mon avis tu devrais plutôt utiliser la méthode path() pour générer l'URL de la route associée à ta fonction delTask().

    Au passage si je peux me permettre, ce n'est pas très recommandé de supprimer des éléments comme tu le fais via un lien, il est souvent préféré de passer par un formulaire qui implémente un token CSRF (cf. https://symfony.com/doc/current/security/csrf.html).

  3. #3
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Ok dac.
    Je suis ouvert aux suggestions ;-)

    Je débute et je ne sais pas comment m'y prendre, je patauge là...
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    En gros la solution immédiate c'est de générer tes liens avec la méthode path (https://symfony.com/doc/current/refe...ence.html#path) ou url (https://symfony.com/doc/current/refe...rence.html#url) selon tes besoins.

    Et ensuite si tu veux améliorer ton code pour implémenter une protection CSRF, tout est expliqué là : https://symfony.com/doc/current/secu...okens-manually

  5. #5
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Merci. Je vais regarder tout ça alors.
    Et je reviendrais si besoin, et je pense que j'aurais besoin ;-)

    Encore merci.
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

Discussions similaires

  1. Ajouter un champ via bouton sur la page
    Par petiflamand dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/09/2017, 11h35
  2. Réponses: 2
    Dernier message: 15/05/2015, 16h40
  3. [WD-2003] Supprimer les traits d'union sur une page
    Par Un Internaute dans le forum Word
    Réponses: 2
    Dernier message: 19/08/2014, 12h52
  4. Réponses: 5
    Dernier message: 13/05/2009, 17h51
  5. Réponses: 2
    Dernier message: 06/03/2003, 16h37

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