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 :

route has some missing mandatory parameters (:idacteur)


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut route has some missing mandatory parameters (:idacteur)
    Bonjour
    j'ai un probleme concernant le routage d'un exemple que je suis entrain de réaliser qui concerne des acteurs et leur films
    chaque acteur à participer à un ou plusieurs film
    donc j'ai crée un module acteur dans lequel il y a une liste de tous les acteur et quand je choisi un acteur j'ai ses detail et la liste des film ou il a joué de là aucun probleme ,
    les choses se gate quand j'ajoute un pager

    voici qlq ligne de code :
    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
    22
    23
    24
     
    Acteur:
      url:  /Acteur/:page
      class: sfRequestRoute
      param: { module: Acteur, action: index, page: 1 }
      requirements:
       page: \d+
       sf_method: [get]
     
    Acteur_Detail:
      url: /ActeurDetail/:idacteur
      class: sfPropelRoute
      param: { module: Acteur, action: detail }
      options: { model: Acteur, type: object }
     
    Acteur_Detail_Film:
      url: /ActeurDetail/:idacteur/:page
      class: sfRequestRoute
      class: sfPropelRoute
      param: { module: Acteur, action: detail, page: 1 }
      options: { model: Acteur, type: object }
      requirements:
       page: \d+
       sf_method: [get]
    le pager marche et la premiere page qui concerne la liste des acteur marche le probleme est comment passer les paramettres liées à "idacteur" et "page" car idacteur est liée au model Acteur

    voici le code executeDetail
    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
    public function executeDetail(sfWebRequest $request)
      {
      	$this->idActeur=ActeurPeer::getActeurByID($request->getParameter('idacteur'));
      	$this->filmArray=FilmPeer::getIdFilmByCodeActeur
                                  (
                                   $request->getParameter('idacteur'),
      		               $request->getParameter('page'),
      		               sfConfig::get('app_total_items_acteur_film'));
            
    	$this->acteurDetail=ActeurPeer::getActeurDetailByID($this->idActeur);
      	
      	
      	return sfView::SUCCESS;
      }

  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
    Es-tu sur que FilmPeer soit capable d'interpréter getIdFilmByCodeActeur correctement ?

    Ou alors c'est une méthode a toi que tu ne nous donnes pas ?

    Mais si elle est interprété par la méthode magique __call() de FilmPeer, j'ai des doutes qu'elle la trouve et elle ne devrait avoir qu'un argument.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut
    Voici la méthode getIdFilmByCodeActeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class FilmPeer ....
     
    public static function getIdFilmByCodeActeur($currentPage, $totalItems)
    {
     
       $c = new Criteria();
       $c->addAscendingOrderByColumn(self::NAME);
       $pagerObj = new sfPropelPager('Film', $totalItems);
           $pagerObj->setCriteria($c);
           $pagerObj->setPage($currentPage);
           $pagerObj->init();
        return $pagerObj;
    }

  4. #4
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Je ne connais que la 1.4 et Doctrine donc je vais peut-être dire une bêtise, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Acteur_Detail_Film:
      url: /ActeurDetail/:idacteur/:page
      class: sfRequestRoute
      class: sfPropelRoute
    ça me parait bizarre. Déclarer une sfPropelRoute ne suffit pas ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut
    moi aussi je pense que c'est une erreur de declarer deux class mais idacteur utilise le model Acteur et pager concerne la pagination des films
    donc mon url doit etre de la forme ...../idacteur/numeropage

  6. #6
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Mais si tu penses que c'est une erreur, pourquoi le faire ?

    En fait, je me demande si ton problème de route ne vient pas de là. En particulier, une route de classe sfRequestRoute ne permet pas de lier la route à un objet. Avec ce paramétrage probablement erroné, je parie que Symfony instancie la première classe trouvée donc une sfRequestRoute, la suite étant plus difficile à prévoir sauf sur un point : c'est que ça va bugger

    As-tu essayé en déclarant juste la bonne classe de route (sfPropelRoute) comme pour Acteur_Detail ?

Discussions similaires

  1. [2.x] Some mandatory parameters are missing
    Par newborns dans le forum Symfony
    Réponses: 5
    Dernier message: 24/03/2014, 21h08
  2. [phpToPDF] Erreur d'affichage:Some data has already been output, can't send PDF file
    Par agbere dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 12/08/2008, 08h19
  3. Réponses: 10
    Dernier message: 05/06/2008, 18h22
  4. [FPDF] Some data has already been output, mais où ?
    Par baggie dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 11/04/2008, 22h16
  5. [PHPMyAdmin] Missing parameter sous IE
    Par patbon dans le forum Installation
    Réponses: 2
    Dernier message: 30/05/2006, 01h24

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