Eureka...

il fallait juste surcharger les widgets et les validateurs pour que le tout
soit lié et enregistré.

$this->widgetSchema['contributor_id'] = new
sfWidgetFormInputHidden(array('is_hidden' => 'true'));
this->widgetSchema['invitation_id'] = new sfWidgetFormInputHidden
(array('is_hidden' => 'true'));

.......

'contributor_id' => new sfValidatorInteger(array('required' => true)),
'invitation_id' => new sfValidatorInteger(array('required' => true)),


Merci Lelio pour la piste des accesseurs... ça va me permettre d' en abusé
maintenant..



Le 25 novembre 2010 17:33, manuel brossard <[email protected]> a écrit :

> J' ai modifié mes champs dans mon schéma j' ai à présent à 0 quand j'
> enregistre au lieu de null...
>
>
>
> Le 24 novembre 2010 23:15, manuel brossard <[email protected]> a écrit
> :
>
> J' ai modifié le passage de l' objet dans le form , ça ne change rien ,et
>> mon test  sur le save est positif.
>>
>> Tous mes champs sont bien enregistrés sauf les 3 ids.... qui sont a NULL.
>>
>> Au prochain rebuild j' ajouterai les notes null... effectivement..
>>
>>
>>
>> Le 24 novembre 2010 22:55, Lélio ML <[email protected]> a écrit :
>>
>> Essaie peut-être avec ça : en supprimant l'objet passé dans le form de
>>> l'action create. Mais ça ne devrait rien changé...
>>>
>>> public function executeCreate(sfWebRequest $request)
>>>  {
>>>     $this->form = new EvaluationForm();
>>>      $this->processForm($request, $this->form);
>>>     $this->setTemplate('new');
>>>  }
>>>
>>> Et sinon, essaie aussi de mettre dans un else du if portant sur le
>>> $form->isValid() avec un
>>> $this->getUser()->setFlash('error', '...');
>>>
>>> Histoire de voir si le formulaire est ok ou non.
>>>
>>> Sinon, tu peux aussi vérifier quelles sont les données POST passée
>>> réellement par la requête HTTP.
>>>
>>> De même, d'un point de vue intégrité des données, as-tu placé des
>>> notnull:
>>> true dans tes champs de lien s'ils sont obligatoires ? Ça évitera des
>>> enregistrements partiels ou faux...
>>>
>>> -----Message d'origine-----
>>> De : [email protected] [mailto:[email protected]] De
>>> la
>>> part de manuel brossard
>>> Envoyé : mercredi 24 novembre 2010 18:17
>>> À : [email protected]
>>> Objet : Re: [symfony-fr] comment rendre persistent la modification d' un
>>> module admin (backend)
>>>
>>>
>>>
>>> Le 24 novembre 2010 18:10, Lélio ML <[email protected]> a écrit :
>>>
>>>
>>>        Ça c'est dans l'action initiale mais pas celle qui enregistre ton
>>>        formulaire. N'est-ce pas ?
>>>        Dans l'action executeCreate(), tu fais comment ? Un bind() puis un
>>>        validate() et enfin un save() ?
>>>
>>>
>>>
>>>
>>>
>>> En fait au début j' avais oublié de passer dans l' action créate mais
>>> même
>>> en ajoutant cela ne change rien.. .
>>>
>>>
>>> Voici le code :
>>>
>>>
>>> public function executeCreate(sfWebRequest $request)
>>>  {
>>>     $this->form = new EvaluationForm($this->evaluation);
>>>     $this->processForm($request, $this->form);
>>>     $this->setTemplate('new');
>>>  }
>>>
>>>  protected function processForm(sfWebRequest $request, sfForm $form)
>>>  {
>>>
>>>     $form->bind(
>>>      $request->getParameter($form->getName())
>>>
>>>     );
>>>
>>>
>>>
>>>    if ($form->isValid())
>>>    {
>>>      $evaluation = $form->save();
>>>      $this->getUser()->setFlash('notice', 'Commentaire enregistr  !');
>>>
>>>      $this->redirect('evaluation_show', $form);
>>>  }
>>>    }
>>>
>>> }
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>        -----Message d'origine-----
>>>        De : [email protected]
>>> [mailto:[email protected]] De la
>>>        part de manuel brossard
>>>
>>>        Envoyé : mercredi 24 novembre 2010 18:03
>>>
>>>        À : [email protected]
>>>        Objet : Re: [symfony-fr] comment rendre persistent la modification
>>> d' un
>>>        module admin (backend)
>>>
>>>
>>>
>>>        Yes voici la séquence complète :
>>>
>>>           $this->evaluation = new Evaluation();
>>>           $this->evaluation->setCustomerId(2);
>>>           $this->evaluation->setContributorId(1);
>>>           $this->evaluation->setInvitationId(3);
>>>           $this->form = new EvaluationForm($this->evaluation);
>>>
>>>
>>>
>>>        --
>>>
>>>        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]<symfony-fr%[email protected]>
>>> <mailto:symfony-fr%[email protected]<symfony-fr%[email protected]>>
>>> .
>>>
>>>        Pour plus d'options, consultez la page de ce groupe :
>>> http://groups.google.com/group/symfony-fr?hl=fr
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Cordialement,
>>>
>>> Manuel Brossard
>>> Twitter: twitter.com/infonel
>>> Skype : mantex2039
>>>
>>> Tel: + 33 9 72 17 00 41
>>>
>>>
>>>
>>> --
>>> 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]<symfony-fr%[email protected]>
>>> .
>>> Pour plus d'options, consultez la page de ce groupe :
>>> http://groups.google.com/group/symfony-fr?hl=fr
>>>
>>>
>>> --
>>> 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]<symfony-fr%[email protected]>
>>> .
>>> Pour plus d'options, consultez la page de ce groupe :
>>> http://groups.google.com/group/symfony-fr?hl=fr
>>>
>>>
>>
>>
>> --
>> Cordialement,
>>
>> Manuel Brossard
>> Twitter: twitter.com/infonel
>> Skype : mantex2039
>>
>> Tel: + 33 9 72 17 00 41
>>
>>
>
>
> --
> Cordialement,
>
> Manuel Brossard
> Twitter: twitter.com/infonel
> Skype : mantex2039
>
> Tel: + 33 9 72 17 00 41
>
>


-- 
Cordialement,

Manuel Brossard
Twitter: twitter.com/infonel
Skype : mantex2039

Tel: + 33 9 72 17 00 41

-- 
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

Répondre à