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 :

sup action symfony


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut sup action symfony
    Bonjour,

    je suis débutant sur Symfony,
    j'utilise une fonction: code ci-dessous pour supprimer une ligne "evenement" de ma base de donnée..ça fonctionne bien.
    Dans ma ligne evenement, j'ai une colonne "video" qui contient le nom de ma video qui a été telechargé dans un dossier
    Mon besoin est comment faire pour supprimer mon fichier video du dossier?
    Merci

    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
     
            /**
         * @Route("/evenement/{id}/delete", name="evenement_delete")
         */
        public function deleteEventAction($id)
        {
            $event = $this->getDoctrine()->getRepository("EvenementBundle:Event")->find($id);
            if($event->getUser() != $this->getUser() && !$this->getUser()->hasRole("ROLE_SUPER_ADMIN"))
                return new Response("");
            $em = $this->getDoctrine()->getManager();
            $em->remove($event);
            $em->flush();
            return $this->redirectToRoute("evenement_list");
        }
        }

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Bonjour,

    il faut stocker d'avance les vidéos dans un chemin clair sous le dossier web, ensuite utiliser la fonction php " unlink" avec en paramètre le chemin complet des vidéos concaténé avec le nom de la vidéo

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Merci pour ton retour..
    les vidéos sont déjà stockées dans le dossier web...c'est juste l'utilisation de la focntion unlink dans la fonction deleteEventAction que je ne sais pas faire.
    merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    de l'aide svp!!

    merci

  5. #5
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    Bonjour,

    regarde du côté des call backs.

    Et plus précisément l'événement PostRemove.
    La fonction définie en postRemove est appelée après la suppression de l'entité.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Bonjour Bebel..merci pour ton retour
    Comme je débute et mon développeur m a laché..peux tu tp m'indiquer comment utiliser cette fonction dans mon code:
    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            /**
         * @Route("/evenement/{id}/delete", name="evenement_delete")
         */
        public function deleteEventAction($id)
        {
            $event = $this->getDoctrine()->getRepository("EvenementBundle:Event")->find($id);
            if($event->getUser() != $this->getUser() && !$this->getUser()->hasRole("ROLE_SUPER_ADMIN"))
                return new Response("");
            $em = $this->getDoctrine()->getManager();
            $em->remove($event);
            $em->flush();
            return $this->redirectToRoute("evenement_list");
        }
        }

  7. #7
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    L'avantage de cette façon ce que tu n'as pas à le gérer partout.
    Ca se gère dans l'entité :

    Si tu reprends mon lien :
    - il faut rajouter l'indication que ton entité utilise les callback avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     * @ORM\HasLifecycleCallbacks()
    - tu rajoutes une méthode dans ton entité avec l'indication suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /**
     * @ORM\PostRemove()
     */
    dans la fonction tu gère la suppression de ton fichier. Sur le projet ou je suis il le gère de la façon suivante :
    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
     
        /**
         * @ORM\PreRemove()
         */
        public function storeFilenameForRemove()
        {
            $this->temp = << recupération du chemin + nom du fichier (il est stocké avec l'id)
        }
     
        /**
         * @ORM\PostRemove()
         */
        public function removeUpload()
        {
            if (isset($this->temp)) 
            {
                if (is_file($this->temp)){
                    unlink($this->temp); << suppression du fichier s'il existe
                }
            }
        }
    Et grâce à ça, quand tu feras un remove sur ton entité automatique la méthode storeFilenameForRemove et removeUpload serons appelées.

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Montre nous la classe Event du bundle Evenement.
    Comme décrit plus haut, la gestion dans l'entité lui même c'est générique et propre pas comme dans l'action supprimer du contrôleur

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    désolé, je ne vois pas ce que tu veux...

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Citation Envoyé par younesssoleil Voir le message
    désolé, je ne vois pas ce que tu veux...
    on veux voir la classe Event

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/11/2017, 15h26
  2. [1.x] Symfony 1.4 : fusion de tables pour affichage et actions
    Par skort93 dans le forum Symfony
    Réponses: 0
    Dernier message: 04/07/2011, 14h54
  3. [1.x] tache symfony dans une action
    Par lepopol dans le forum Symfony
    Réponses: 2
    Dernier message: 18/04/2011, 09h06
  4. [1.x] action symfony avec ajax
    Par elavoine dans le forum Symfony
    Réponses: 3
    Dernier message: 30/08/2010, 19h15
  5. Macro sup action touche entrer en fin ligne
    Par rico63 dans le forum VBA Word
    Réponses: 2
    Dernier message: 30/08/2007, 13h32

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