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 :

Le routing avec des objets [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut Le routing avec des objets
    Bonjour,

    J'essaye de passer dans une route un objet et dans mon action de récuperer cet objet.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    subject_show:
      url:   :category_slug/:title_slug.html
      class: sfDoctrineRoute
      options: { model: Subject, type: object }
      param: { module: subject, action: show }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function executeShow(sfWebRequest $request)
      {
        $this->subject = Doctrine_Core::getTable('Subject')->getSubjectShow($this->getRoute()->getObject()->getId());
        $this->forward404Unless($this->subject);
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="<?php echo url_for(array('sf_route' => 'subject_show', 'sf_subject' => $subject)); ?>">
              <?php echo $subject->getId() ?>
     </a>
    Mais a chaque fois $this->getRoute()->getObject()->getId() retourne l'id = 1
    ma route est bien générer mais dans mon action sa ne récupere pas le bon object on dirait ...

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Tu utilises 2 slugs dans ta route. Les deux sont-il accessibles dans le modèle : Subject ?

    As-tu vérifié que les slug était remplis dans la base ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut
    Voici ce que j'ai mis dans Subject.class.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Subject extends BaseSubject
    {
    	public function getTitleSlug()
    	{
    		return Poopuli::slugify($this->getTitle());
    	}
    	public function getCategorySlug()
    	{
    		return Poopuli::slugify($this->getCategory());
    	}
    }
    Ce qui est bizarre, c'est que l'url est bien généré pour chaque sujet.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Le problème est que si tu veux faire des recherches sur un slug dans une requête, ce qui est, finalement, ce que tu veux, il faut qu'il existe dans la table. Si non, imagine avec une table des 10.000 enregistrements, il va falloir sortir les 10.000 pour trouver le bon ! Non, il faut que le slug soit enregistré physiquement dans la table, unique pour la table (pas possible d'avoir deux enregistrements qui ont le même slug, si non, comment différencier ?)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut
    Donc si je comprend bien, dans mon url il faut que je mette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url:   :category_slug/:id/:title_slug.html
    Car je ne peux pas identifier mon sujet grâce à un slug.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Par défaut
    Je commence à mieux comprendre ceux que tu voulais dire à propos des slug.

    Après quelque recherche je suis tombé sur ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    actAs:
        Sluggable:
          fields:     [title]
    Donc à ce moment la, un champs (slug) de title est créé dans la table.

    J'aimerai affiner mon url en ayant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :category/:title-:id.html
    Mais dès que je mets -:id ca m'affiche une erreur comme quoi mon url n'est pas serialisé.

    Merci d'avance pour ton aide.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/06/2008, 18h03
  2. [XSD] Mapper intelligemment un XSD avec des Objets Java
    Par PoteA_Tooz dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/05/2008, 10h33
  3. [POO] Listing avec des objets
    Par estampille dans le forum Langage
    Réponses: 5
    Dernier message: 27/08/2007, 16h19
  4. Réponses: 1
    Dernier message: 05/06/2007, 17h14
  5. [C#]Travailler en synchrone avec des objets asynchrone
    Par mister3957 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2006, 18h12

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