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 Discussion :

Exécuter et récupérer résultat directement dans action.class


Sujet :

PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Exécuter et récupérer résultat directement dans action.class
    Bonjour,

    Pour un système de commentaire j'ai besoin de récupérer une valeur dans ma bdd en fonction de l'id de l'article, comment je peux faire pour récupérer cette valeur directement dans le action.class?
    Voila mon code pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public function executeAdd(sfWebRequest $request) {
            $this->forward404Unless($request->isMethod(sfRequest::POST));
            $this->form = new CommentairesForm();
            $this->processForm($request, $this->form);
            $data = $this->getRequestParameter('article');
            $this->commentairess = Doctrine_Core::getTable('articles')
                            ->createQuery('a')
                            ->where('id = ?', $data['articles_id'])
                            ->execute();
            //ici je voudrai récupérer l'url de l'article n° articles_id
            $this->redirect('@article_show?id=' . $data['articles_id'] . '&url=lorem-ipsum');
        }
    Romain.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 100
    Points : 123
    Points
    123
    Par défaut
    Je sais pas si j'ai bien compris ta demande, mais en fait, tu veut récupérer l'id de l'article dans ton action?

    Si c'est ca alors tu as plusieurs solutions :
    • D'abord, tu peut utiliser des routes spécifiques (sfDoctrineRoute si tu utilise Doctrine) pour avoir un mappage entre ta route et l'article que tu veut modifier/utiliser.
      Dans ton action, tu pourra donc utiliser
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
       
      $article = $this->getRoute()->getObject();
      $article_id = $article->getId();
    • Sinon tu doit avoir le article_id dans ton url donc tu aura
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       
      $data = $this->getRequestParameter('article_id');


    Par contre, je vois pas vraiment comment tu fait pour utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $data = $this->getRequestParameter('article')

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    En fait l'article_id je le connais il est passé en hidden d'un formulaire. Ce que je voudrai c'est récupérer la propriété url de l'article correspondant à l'id que j'ai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = $this->getRequestParameter('article')
    Ce code me sert à récupérer les paramètres de mon formulaire qui sont sour la forme article[%s].

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je ne comprend pas l'intérêt de l'url de l'article dans le redirect.

    Je ne comprend pas le code pour récupérer des articles et leurs commentaires dans l'action et qui part sur un redirect, c'est à dire une nouvelle instance de programme qui va oublier tous ce qui vient d'être fait, pour rien ou presque.

    Il manque ton shema.yml pour comprendre ta structure est les champs d'article.

    Qu'est-ce que le lien url de l'article pour toi ? Un champ de ta base ? Une route utilisée par symfony ? Si c'est une route, quel est la déclaration de la route ?

    Par contre, dans le code que tu as donnés.
    • Il apparait que ta table commentaire s'appelle "commentaires". Il faut toujours éviter les "s" en terminaison de nom de classe dans symfony, en effet un objet issu de cette table représente un commentaire (donc sans "s").


    Je pense que ton code est confus et non productif (action commencées et non abouties), il pourrait être largement amélioré. Peux-tu expliquer ce que tu veux faire plutôt que d'expliquer ce que tu as essayé de réaliser, on va tout reprendre ensemble.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Ce que je souhaite faire c'est rediriger l'utilisateur vers l'article où il viens de poster son commentaire.
    Url est un champ dans ma bdd dans la table article qui sert pour l'url rewriting.

    Romain.

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Citation Envoyé par Mainmich Voir le message
    Ce que je souhaite faire c'est rediriger l'utilisateur vers l'article où il viens de poster son commentaire.
    Url est un champ dans ma bdd dans la table article qui sert pour l'url rewriting.
    As-tu déjà explorer le système de route intégré à symfony ? Il fait de l'url rewriting, au pire, avec l'aide du behavior de doctrine pour avoir des url explicites.

    Je pense effectivement qu'il faut reprendre ton code un peu plus haut...

    Commence par explorer l'url rewriting intégré, qu'on appel en symfony les route. Regarde aussi du côté des routes spécialisée en doctrine, qui devraient te permettre d’économiser pas mal de lignes.

    L'idée est de créé une route qui est une url spécifique à ton article, un peu du genre : www.monsite.com/article/1456. Puis tu peux, en fin d'ajout du commentaire, quant tu es sur qu'il est valide et ajouté, tu peux utiliser la méthode redirect de l'objet sfAction pour rediriger ton utilisateur vers la route et l'id de l'article (ou plus simple, si tu utilises les routes doctrine, tu peux envoyer l'objet article à la route qui en sortira les champs nécessaires). Tu as une bonne approche avec du code et des tas d'exemple dans jobeet. Vas-y jeter un oeil.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/04/2011, 11h41
  2. Accès à une méthode directement dans sa classe
    Par nico78200 dans le forum jQuery
    Réponses: 2
    Dernier message: 03/02/2011, 14h06
  3. Récupérer le pageContext dans une classe Action
    Par Narvis dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/12/2010, 16h55
  4. Réponses: 4
    Dernier message: 26/04/2010, 10h54
  5. [AC-2003] Récupérer résultat requête dans zone de texte
    Par hyperion13 dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/04/2010, 18h11

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