Bonjour à tous
j'ai un petit souci sur un formulaire pour son affichage et sa
validation
je vous explique
en base de données j'ai 3 tables
une table user
id
lastname
firstname
login
password
une table group
id
libelle
une table user_group
id
user_id
group_id
cela permet d'attribuer plusieurs groupes à un utilisateur
(administrateur, utilisateur, commercial,...)
je cherche à avoir un formulaire composé de champ input pour le user
et une liste de checkbox pour les groupes
voici mon code
$this->form = new userForm();
$this->formGroup = new user_groupForm();
$this->formGroup->makeCheckBoxList();
la fonction makeCheckBoxList() va chercher la liste complète des
groupes pour en faire des checkbox
public function makeCheckBoxList()
{
$tmp = array();
$groupList = Doctrine::getTable('group')->getList();
foreach($groupList as $group){
$tmp[$group['id']] = $group['libelle'];
}
$groupSelect = new sfWidgetFormSelectCheckbox(array(
'choices' => $tmp
));
$this->setWidget('group_id', $groupSelect);
}
ceci fonctionne correctement
seulement, à la modification, mes checkbox ne sont pas cochées
lors d'un update, j'instantie le userForm en lui passant en paramètre
mon objet user préalablement sélectionné
j'ai donc bien les infos du user qui s'affiche dans mes champs
mais que dois je passer en paramètre à mon second formulaire ? car je
n'ai pas qu'un seul objet mais plusieurs
je sais pas si je me suis bien fait comprendre...
mon second problème est de créer un validator vérifiant qu'au moins
une des checkbox a été coché
je me suis pas trop penché la dessus, je pense passer par un validator
callback après le post et vérifier la liste des values
suis je dans le droit chemin ?
mais bon pour le moment je bloque sur l'update de mon formulaire
c'est pour cela que je viens demander votre aide
merci bien
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr"
de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour résilier votre abonnement à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour afficher d'autres options, visitez ce groupe à l'adresse
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---