Bonjour,
j'ai créé un module dans l'administration de mon site qui doit me
permettre de mettre à jour une relation plusieurs-plusieurs.
Le problème c'est que lorsque je veux bind mon formulaire celui-ci
semble troujours vide.
Je suppose que c'est parce que mes valeurs envoyé ne sont pas bonnes
mais pourtant renderGlobalErrors est toujours vide.
Voici le schema de mes tables.
----------
# config/schema.yml
propel:
bordoz_article:
id: ~
titre: { type: longvarchar, required: true }
sous_titre: { type: longvarchar, required: true }
texte: { type: longvarchar, required: true }
url: { type: varchar(255), required: true, index:unique }
post_date: { type: timestamp, required: true}
publication_date: {type: timestamp, required: true}
etat: { type: integer, required: true}
auteur: { type: integer, foreignTable: bordoz_auteurs,
foreignReference: id, required: true }
user: { type: integer, foreignTable: sf_guard_user,
foreignReference: id, required: true }
meta_kw: { type: varchar(255)}
meta_desc: { type: varchar(255)}
bordoz_categorie:
id: ~
nom: { type: varchar(255), required: true }
url: { type: varchar(255), required: true, index:unique}
meta_kw: { type: varchar(255)}
meta_desc: { type: varchar(255)}
bordoz_auteurs:
id: ~
nom: { type: varchar(255), required: true, index: unique }
bordoz_article_categorie:
id: ~
id_categorie: { type: integer, foreignTable: bordoz_categorie,
foreignReference: id, primaryKey: true, required: true, onDelete:
cascade }
id_article: { type: integer, foreignTable: bordoz_article,
foreignReference: id, primaryKey: true, required: true, onDelete:
cascade }
position: { type: integer }
--------------
Voici mon formulaire:
-------------
class PositionsForm extends BaseFormPropel
{
private $categorie;
public function __construct($categorie) {
$this->categorie = $categorie;
parent::__construct();
}
public function getModelName() {
return 'BordozArticleCategorie';
}
public function configure() {
$this->setWidgets(array(
'position_1' => new sfWidgetFormSelect(array('choices'
=> $this-
>getArticles())),
'position_2' => new sfWidgetFormSelect(array('choices'
=> $this-
>getArticles())),
'position_3' => new sfWidgetFormSelect(array('choices'
=> $this-
>getArticles())),
'selected_categorie' => new
sfWidgetFormInputHidden(array())
));
$this->widgetSchema->setLabels(array(
'position_1' => 'Position 1',
'position_2' => 'Position 2',
'position_3' => 'Position 3',
'selected_categorie' => 'categorie'
));
$this->setValidators(array(
'position_1' => new sfValidatorChoice(array('choices' =>
array_keys(array(1,2,3)))),
'position_2' => new sfValidatorChoice(array('choices' =>
array_keys(array(1,2,3)))),
'position_3' => new sfValidatorChoice(array('choices' =>
array_keys(array(1,2,3)))),
'selected_categorie' => new sfValidatorInteger()
));
$this->setDefault('selected_categorie',$this->categorie);
$this->widgetSchema->setNameFormat('position[%s]');
$this->errorSchema = new sfValidatorErrorSchema($this-
>validatorSchema);
}
public function getArticles() {
$criteria=BordozArticleCategoriePeer::getByIdCategorieCriteria($this-
>categorie);
$criteria=BordozArticlePeer::getActiveCriteria($criteria);
$articles=BordozArticlePeer::doSelect($criteria);
$array=array(0=>'');
foreach ($articles as $article) {
$array[$article->getId()]=$article->getTitre();
}
return $array;
}
}
--
Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr