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 :

Comment configurer une route pour un module utilisant une clé à 2 colonnes ?


Sujet :

Symfony PHP

  1. #1
    Membre éprouvé 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
    Points : 933
    Points
    933
    Par défaut Comment configurer une route pour un module utilisant une clé à 2 colonnes ?
    A la base, le module utilise une table d'association :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    VitrineLivre:
      actAs: { Timestampable: ~ }
      columns:
        vitrine_paragraphe_id: { type: integer(4), primary: true }
        livre_id: { type: integer(4), primary: true }
      relations:
        Livre:
          type: one
          local: livre_id
          foreign: id
        VitrineParagraphe:
          type: one
          local: vitrine_paragraphe_id
          foreign: id
    J'ai généré le module avec doctrive:generate-admin. J'insère un premier objet dans la base grâce au formulaire de création. Et lorsque je veux revenir sur la liste, j'obtiens une erreur Apache :
    Internal Server Error (500) :
    The "/vitrinelivre/:Array/edit.:sf_format" route has some missing mandatory parameters (:Array).
    La route correspondant au module, générée par Doctrine est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    vitrine_livre:
      class: sfDoctrineRouteCollection
      options:
        model:                VitrineLivre
        module:               vitrinelivre
        prefix_path:          /vitrinelivre
        column:               Array
        with_wildcard_routes: true
    Comme le champ 'colum' doit pointer sur une colonne servant d'identifiant unique, je comprends que cela ne puisse pas marcher tel quel. Je comprends moins que Doctrine génère une route qui ne marche pas, mais passons. La question est donc : comment dois-je configurer ma route pour qu'elle fonctionne avec un objet ayant une clé portant sur deux champs ?

  2. #2
    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
    Avec sfDoctrinecollection, ce n'est, à mon avis pas possible.

    Quoique

    Faudrait créer un enfant de sfDoctrineCollection qui crée une clef unique à partir de tes deux clef. Et utiliser cette clef unique ensuite.

Discussions similaires

  1. Utiliser une dépendance pour un attrbiut d'une classe
    Par Nickonet dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 15/08/2012, 18h21
  2. Réponses: 5
    Dernier message: 31/03/2010, 23h59
  3. comment configurer simpleCart.js pour faire une page e-commerce ???
    Par pampelline dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 01/12/2009, 21h45
  4. Réponses: 4
    Dernier message: 06/04/2007, 13h48
  5. Réponses: 1
    Dernier message: 17/05/2006, 09h19

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