Alors disons, on génère la référence après avoir posté le formulaire et donc on surcharge la méthode save() mais pour cela, on va changer le validateur de ton widget référence :
$this->validatorSchema['Dss_Ref'] = new sfValidatorPass();
Comme cela, aucun soucis pour poster le formulaire.
Ensuite, dans ton modèle, tu crées la méthode save() :
1 2 3 4 5 6
| public function save(Doctrine_Connection $con = null)
{
$ref = class::method(params);
$this->setDssRef($ref);
return parent::save($con);
} |
avec :
- class = ta classe perso que tu crées dans /lib
- method = ta méthode perso qui va créer la valeur de ta référence (ne pas oublier de retourner la valeur)
- params = les paramètres nécessaires à créer ta référence (type, numéro parent, ...), tu peux les appeler avec les méthodes magiques : $this->type, $this->numero.
Voilà, normalement, aucun problème (attention à bien tester ta méthode qui créer la référence !).
Je trouve cela plus propre que de mettre de l'ajax partout tout en sachant que dans ce cas, je ne le trouve pas nécessaire (une fois les données enregistrées, on est redirigé sur la page d'édition, autant l'afficher là :p).
Laisse bien ton champ en readonly, ça devrait être nickel
Partager