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 :

problème action Edit_table association [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut problème action Edit_table association
    Bonjour,

    j'utilise symfony pour créer une application de gestion d'articles.
    je dispose de 3 entités : "article", "fournisseur" et "stock" avec une relation "articleLivré" reliant ces 3 entités avec une cardinalité (1,n). Alors dans mon schéma de BD j'obtiens en plus des tables des 3 entités, une 4ème table "article livré" qui contient les 3 clés étrangères (Les Id des entités) + date livraison + quantité stockée.

    J'ai besoin en fait que l'utilisateur puisse rentrer dans le frontend la date et la quantitée livrée correspondant au bon produit. J'ai créé un module "livraison" associée à la table "articleLivré" sauf que le problème que j'ai, c'est que l'action Edit ne permet pas de choisir un Id spécifique de produit, un Id de fournisseur ou un Id de stock (Alors que sur phpmyAdmin il me propose de choisir un Id parmi tous les Id de produits présents quand j'insère un enregistrement dans la table "articleLivré"...).

    Je ne sais pas vraiment comment faire??

    Est-ce qu'il faut modifier l'action executeEdit? et par la même occasion, comme les Id ne sont pas parlants, est-ce qu'on peut afficher en plus les noms d'article et de fournisseur dans 'L'Edit" qu'on récupère à partir des tables "article" et "fournisseur"?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     public function executeEdit(sfWebRequest $request)
      {
        $this->forward404Unless($article_livre_fournisseur_stock = Doctrine_Core::getTable('articleLivre')->find(array($request->getParameter
    ('article_id'),
    $request->getParameter('fournisseur_id'),
    $request->getParameter('stock_id'))), sprintf('Object article_livre_fournisseur_stock  does not exist (%s).', $request->getParameter('article_id'),
    $request->getParameter('fournisseur_id'),
    $request->getParameter('stock_id')));
        $this->form = new articleLivreForm($article_livre_fournisseur_stock);
      }
    Merci pour votre aide!!!

  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 veux faire un formulaire de recherche évolué ?

    Ta recherches doit te retourner plusieurs ligne ou une seul ligne ?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Tu veux faire un formulaire de recherche évolué ?

    Ta recherches doit te retourner plusieurs ligne ou une seul ligne ?

    En fait, c'est pas vraiment une recherche évoluée, mais juste au niveau du formulaire d'édition ou de Nouvel enregistrement de la table "articleLivré", avoir la possibilité de choisir entre les différents Id (clés étrangères) possibles et avoir en plus le nom de l'article, du fournisseur..associé à chaque Id.

  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
    Normalement, si ton shema.yml est bon, tu devrais avoir automatiquement des widget sélection sous forme de liste qui sont générés.

    Si ce n'est pas le cas, met ton shema.yml, pour voir.

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Normalement, si ton shema.yml est bon, tu devrais avoir automatiquement des widget sélection sous forme de liste qui sont générés.

    Si ce n'est pas le cas, met ton shema.yml, pour voir.
    Voici mon schéma:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    Fournisseur:
      connection: doctrine
      tableName: fournisseur
      actAs: { Timestampable: ~ }
      columns:
        nom_fournisseur:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
    	.....
        user_creation:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        user_maj:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
     
    Stock:
      connection: doctrine
      tableName: stock
      actAs: { Timestampable: ~ }
      columns:
        numero:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        user_creation:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        user_maj:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
     
    Article:
      connection: doctrine
      tableName: article
      actAs: { Timestampable: ~ }
      columns:
        id:  { type: integer, notnull: true, primary: true }
        nom_article:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        n_inventaire:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        .......
        creation_user:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        update_user:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
     
    ArticleLivre:
      connection: doctrine
      tableName: articlelivre
      actAs: { Timestampable: ~ }
      columns:
        article_id:  { type: integer, notnull: true, primary: true }  
        fournisseur_id:  { type: integer, notnull: true, primary: true }  
        stock_id:  { type: integer, notnull: true, primary: true }   
        date_livraison:
          type: date(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        quantite:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:	  
        Article: { onDelete: RESTRICT, local: article_id, foreign: id}
        Fournisseur:   { onDelete: RESTRICT, local: fournisseur_id, foreign: id}
        Stock:   { onDelete: RESTRICT, local: stock_id, foreign: id}

  6. #6
    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 peux déjà virer tous ce qui est truc: false qui est la valeur par défaut, cela va alléger le schéma.

    J'ai des doutes sur une clef primaire à trois champs. Doctrine 1.2 a beaucoup de mal à gérer les clefs à deux champs, alors 3... A ta place je ferais trois clefs indépendantes et une clef primaire Id de son côté. Ceci n’empêche pas de créer un index regroupent les trois clef et, éventuellement, unique. De plus ta clef à trois champs me semble assez limitative dans la mesure où un article ne dans une position de stock fourni par un fournisseur ne peut avoir qu'une liaison qui me semble être proche d'une vente. Une vente pour un article lié et on le jette ?

    Puis juste un point de rhétorique (vu que tu vas, je pense, modifier le schéma là), pourquoi mettre un notnull sur un élément constituant la clef primaire ?

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

Discussions similaires

  1. [hibernate]Problème mapping classe association
    Par jsl1 dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/06/2006, 17h27
  2. [C#] Problème action bloquante: chargement d'une form
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 5
    Dernier message: 24/05/2006, 16h00
  3. [Problème] Actions simultanées?
    Par joker.benj dans le forum Général Java
    Réponses: 2
    Dernier message: 15/05/2006, 08h49
  4. [Problème] actions Clavier
    Par joker.benj dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 14/05/2006, 19h56
  5. [VBA-E] Problème Action "Autofill"
    Par beurnoir dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/11/2005, 15h38

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