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

PHP & Base de données Discussion :

Requête Propel empêcher la suppression d'enregistrements


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Développeuse PHP
    Inscrit en
    Février 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeuse PHP

    Informations forums :
    Inscription : Février 2020
    Messages : 10
    Par défaut Requête Propel empêcher la suppression d'enregistrements
    Bonjour,

    Je travaille actuellement sur le développement d'une application et suis chargée de créer une section FAQ et Category. J'ai pu créer tous les fichiers correctement, non sans soucis puisque je suis débutante, et j'ai bien réussi à lier les tables faq et category.
    J'utilise phpStorm (php version 5.6), Propel, Symphony, twig et phppgadmin pour travailler.

    Je rencontre le problème suivant : Lorsque je suis dans ma section catégorie (fichier liste.html.twig), je peux créer une nouvelle catégorie, éditer ou supprimer une catégorie du listing affiché.
    Or, mon bouton supprimer fonctionne bien, y compris lorsqu'une catégorie est utilisée en FAQ.

    Je souhaiterai donc créer une requête Propel (?) qui me permettrait d'empêcher la suppression d'une catégorie si elle est utilisée dans une question FAQ. (

    Voici le code du bouton supprimer du fichier twig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        <a title="Supprimer"
                                           class="btn btn-circle btn-icon-only btn-default"
                                           href="{{ path('clientp_category_backend_delete', {"categoryId": category.categoryId}) }}"
                                           style="height: 27px; width: 27px; padding: 4px 6px 2px;">
                                            <i class="icon-trash"></i>
                                        </a>
    Et le code du CategoryController.php auquel il renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public function deleteAction( $categoryId){
            $category = new Category();
            $manager = $this->get('clientp_appel.category.manager');
     
            if($categoryId > 0 && !$category = $manager->findCategoryById( $categoryId)) {
                throw new NotFoundHttpException($this->get('translator')->trans('This category does not exist.'));
            }
     
            $category->delete();
            $this->get('session')->getFlashBag()->add('notice',
                $this->get('translator')->trans('Catégorie supprimée'));
     
            return $this->redirect($this->generateUrl('clientp_category_backend_list'));
        }
    Je pense que c'est dans ce code ci que je devrais faire une requête Propel, je dispose de la documentation suivante :
    http://propelorm.org/documentation/0...tionships.html
    Je pense qu'il me faut chercher la solution dans les relations, mais je n'avais jamais fait de Propel avant ce projet ci donc je débute et ne comprends pas bien.
    Est il possible de faire une fonction count avec propel, qui détecterait si category_id est utilisé dans la table faq, et empêcherait la suppression de cette catégorie le cas échéant ?

    Merci de votre aide,

    Eris Stig.

  2. #2
    Membre habitué
    Femme Profil pro
    Développeuse PHP
    Inscrit en
    Février 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeuse PHP

    Informations forums :
    Inscription : Février 2020
    Messages : 10
    Par défaut Essai 1
    Je suis allée modifier mon fichier CategoryManager pour rajouter un leftjoin de Faq :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public function findCategorys()
        {
            return $this->createQuery()
                ->leftJoinWithFaq()
                ->find();
        }
    Pour ceux que ça pourrait aider, j'ai ensuite fait :

    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
     
    public function deleteAction( $categoryId){
            $category = new Category();
            $manager = $this->get('clientp_offre.category.manager');
     
            if($categoryId > 0 && !$category = $manager->findCategoryById( $categoryId)) {
                throw new NotFoundHttpException($this->get('translator')->trans('This category does not exist.'));
            }
     
            if ($category->countFaqs() > 0){
                throw new NotFoundHttpException($this->get('translator')->trans('This category is linked to an Faq.'));
            }
            else  {
                $category->delete();
                $this->get('session')->getFlashBag()->add('notice',
                    $this->get('translator')->trans('Catégorie supprimée'));
            }
     
            return $this->redirect($this->generateUrl('clientp_category_backend_list'));
        }
    Bon je vais pas dire merci parce que j'ai pas eu d'aide, mais si y en a qui rencontrent ce problème...

    Eris Stig

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/05/2018, 20h05
  2. Requête suppression sur enregistrement précis
    Par PetitChris dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/02/2015, 18h30
  3. [MySQL] Suppression d'enregistrements MySQL abusive, sans requête associée
    Par IGalaxy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/03/2009, 19h49
  4. Requête suppression (300 enregistrements simultanément)
    Par e040098k dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/05/2007, 11h34
  5. Requête suppression d'enregistrement
    Par com-ace dans le forum Requêtes et SQL.
    Réponses: 22
    Dernier message: 22/08/2006, 17h26

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