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 :

case à cocher images, relation n-n


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 case à cocher images, relation n-n
    Bonjour,

    j'ai un petit souci pour afficher une case à cocher d'images.
    j'ai 2 tables liées par une relation n-n: une table "article" et une table "fabriquant". je voudrais afficher les logos de fabriquants à partir du module backend que j'ai généré pour "article" (action: ajouter nouvel article).

    voici un aperçu de mon schéma yml:

    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
     
    Fabriquant:
      connection: doctrine
      tableName: fabriquant
      actAs: { Timestampable: ~ }
      columns:
        nom_fabriquant:
          type: string()
        logo:
          type: blob()
    Article:
      connection: doctrine
      tableName: produit
      actAs: { Timestampable: ~ }
      columns:
        fabriquant_id: 
          type: integer
        nom:
          type: string()
          notnull: true	  
    	code:
    	  type: string()
    	..............
     
      relations:
        Fabriquants:
          class: Fabriquant
          refClass: ArticleFabrique
          local: article_id  
          foreign: fabriquant_id
          foreignAlias: Articles
     
    ArticleFabrique:
      connection: doctrine
      tableName: articlefabrique
      columns:
        article_id:
          type: integer
          notnull: true  
        fabriquant_id: 
          type: integer
          notnull: true   
      relations:	  
        Article: 
          onDelete: RESTRICT
          local: article_id
          foreign: id		  
          foreignAlias: ArticleFabriques  
        Fabriquant: 
          onDelete: RESTRICT
          local: fabriquant_id
          foreign: id		  
          foreignAlias: ArticleFabriques
    avec ce schéma, dans mon formulaire d'ajout d'article j'obtiens une liste à choix multiple des Id des fabriquants.
    Mon objectif c'est de pouvoir afficher les logos de fabriquants à la place des id sous forme de case à cocher.

    j'ai déjà intégré le code du Widget ci-dessous, qu'on m'avait passé sur ce forum, mais j'ai cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    500 | Internal Server Error | InvalidArgumentException
    The "Article" model has to "Fabriquant" relation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $this->setWidget( 'fabriquants_list', new sfWidgetFormDoctrineChoice( array(
                        'model' => $this->getRelatedModelName( 'Fabriquant' ),
                        'renderer_class' => 'mrWidgetFormSelectImageRadio',
                        'add_empty' => false
                            ) )) ;

    qqu pourrait m'aider?

    Merci!!!!!

  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
    Ton shema.yml corrigé.
    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
    shema.yml
    Fabriquant:
      connection: doctrine
      tableName: fabriquant
      actAs: { Timestampable: ~ }
      columns:
        nom_fabriquant:
          type: string()
        logo:
          type: blob()
    Article:
      connection: doctrine
      tableName: produit
      actAs: { Timestampable: ~ }
      columns:
        fabriquant_id: 
          type: integer
        nom:
          type: string()
          notnull: true	 
        code:
          type: string()
    	..............
     
      relations:
        Fabriquants:
          class: Fabriquant
          refClass: ArticleFabrique
          foreignAlias: Articles
     
    ArticleFabrique:
      connection: doctrine
      tableName: articlefabrique
      columns:
        article_id:
          type: integer
          notnull: true  
          primary: true
        fabriquant_id: 
          type: integer
          notnull: true 
          primary: true  
      relations:	  
        Article: 
          onDelete: RESTRICT
          local: article_id
          foreign: id		  
          foreignAlias: ArticleFabriques  
        Fabriquant: 
          onDelete: RESTRICT
          local: fabriquant_id
          foreign: id		  
          foreignAlias: ArticleFabriques
    A ta place je mettrai une taille aux string() (mdr, c'est à double sens) pour éviter qu'il ne soient trop grand (aie encore) met les en dessous de 250.

    Essaye avec ce schéma optimisé (tu peux encore supprimé éventuellement les lignes "par défaut" dans les relations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Relation dans la liaison optimisée
        Fabriquant: 
          onDelete: RESTRICT
          foreignAlias: ArticleFabriques
    Vérifie dans ton yml, j'ai l'impression qu'il y a des tabulations qui trainement. Le format yml nécessite obligatoirement l'utilisation exclusive d'espace.

Discussions similaires

  1. Case à cocher/image
    Par Squatina dans le forum IHM
    Réponses: 2
    Dernier message: 31/03/2011, 06h10
  2. [AC-2007] Lien case à cocher/image sur formulaire
    Par laweil dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/11/2010, 16h06
  3. liste déroulante avec une case à cocher et une image
    Par kurul1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2007, 09h54
  4. Afficher une image à l'aide d'une case à cocher
    Par meumeu73.1 dans le forum Général VBA
    Réponses: 10
    Dernier message: 06/03/2007, 12h40
  5. Réponses: 7
    Dernier message: 17/01/2007, 16h22

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