Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2011, 11h19   #1
Invité régulier
 
Inscription : mai 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 46
Points : 6
Points : 6
Par défaut liste doctrine en fonction de l'objet

salut a tous !!!

Voici mon problème.
J'ai une table article ->id, prix, titre...
J'ai une table size -> id, name
J'ai une table article_has_size -> article_id, size_id

Donc un article peut avoir plusieur taille et une taille peut etre dans plusieur article[m:m]

J'ai bien crée ma bdd en écrivant toute les relations
[ j'ai mis :
Code :
this->widgetSchema['size_list']->setOption('renderer_class', 'sfWidgetFormSelectDoubleList');
dans la config de mon form "article" qui me permet donc de sélectionner les tailles dispo pr mon article]

Tout marche bien.

La ou je coince c'est que j'ai besoin de créée un "petit formulaire" avec une liste deroulante des "size" dispo pour l'article que je visionne.

Dc ds l'action "show" de mon article je met:
Code :
1
2
3
4
5
6
7
8
9
10
 
public function executeShow(sfWebRequest $request)
  {
    $this->article =$article= Doctrine_Core::getTable('article')->find(array($request->getParameter('id')));
 
    $this->form = new commandeForm($this->article);
    $this->forward404Unless($this->article);
 
 
  }
Et pour la configuration de mon formulaire
Code :
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
<?php
 
class CommandeForm extends ArticleForm
{
 
  public function configure()
  {
     $this->setWidgets(array(
        'size_list'    => new sfWidgetFormDoctrineChoice(array('multiple'=>false, 'model'=> 'Size')),
        'quantity'   =>  new sfWidgetFormChoice(array(
		'choices'  =>  self::generateTwoCharsRange(1,50),
		'expanded' => false,
		)),
     ));
 
     $this->widgetSchema->setNameFormat('commande[%s]');
 
     $this->setValidators(array(
        'size_list'   => new sfValidatorNumber(array('required' => true)),
        'quantity'  => new sfValidatorNumber(array('required' => true)),
    ));
 
  }
 
 
  static function generateTwoCharsRange($start, $stop) {
 
        $results = array();
		for ($i = $start; $i <= $stop; $i++) {
 
            $results[$i] = sprintf('%02d', $i);
 
        } return $results;
 
    }
 
}
Maintenant j'affiche la liste de toute ma table "size" mais je ne vois pas comment charger uniquement les "size" lier a mon article....
Je pense que sa doit etre simple ... mais je connais pas l'astuce...

Merci bien
Monnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 12h40   #2
Invité régulier
 
Inscription : mai 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 46
Points : 6
Points : 6
C'est bon il suffit d'utiliser le sfWidgetFormChoice et de charger l'objet dans la liste :
Code :
'size_list'    => new sfWidgetFormChoice(array('multiple'=>false, 'choices'=> $this->getObject()->getSize()))
Voila
Monnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h01.


 
 
 
 
Partenaires

Hébergement Web