pas bon, on ne peut avoir que 2 form un new et un edit.
Hors j'ai besoin d'avoir un 3eme formulaire avec juste le nom du user et le champ groupe_id_list.. 
bon j'ai créer un module:
symfony doctrine:generate-module --non-verbose-templates frontend extrafieldsuser sfGuardUser
comme je vais avoir plus d'un champ mettre a jour comme ça, j'ai créer une action pour ce champ:
1 2 3 4 5
| public function executeExtraFieldChqDej(sfWebRequest $request)
{
$this->forward404Unless($sf_guard_user = Doctrine::getTable('sfGuardUser')->find(array($request->getParameter('id'))), sprintf('Object sf_guard_user does not exist (%s).', $request->getParameter('id')));
$this->form = new extraFieldChqDejForm($sf_guard_user);
} |
j'ai créer un template:
1 2 3
| <h1>GroupChqDej1</h1>
<?php include_partial('extraFieldChqDej', array('form' => $form)) ?> |
et un partial
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?php use_stylesheets_for_form($form) ?>
<?php use_javascripts_for_form($form) ?>
<form action="<?php echo url_for('extrafieldsuser/updateChqDej?id='.$form->getObject()->getId()) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
<table>
<tfoot>
<tr>
<td colspan="2">
<a href="<?php echo url_for('extrafieldsuser/index') ?>">Back to list</a>
<input type="submit" value="Save" />
</td>
</tr>
</tfoot>
<tbody>
<?php echo $form ?>
</tbody>
</table>
</form> |
et une classe:
1 2 3 4 5 6 7 8 9
| class extraFieldChqDejForm extends sfGuardUserForm
{
public function configure()
{
//unset($this['username']);
$this->useFields(array('username','grpe_chq_dej_list_id'));
}
} |
j'ai créer un un update specifique:
1 2 3 4 5 6 7 8 9 10
| public function executeUpdateChqDej(sfWebRequest $request)
{
$this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
$this->forward404Unless($sf_guard_user = Doctrine::getTable('sfGuardUser')->find(array($request->getParameter('id'))), sprintf('Object sf_guard_user does not exist (%s).', $request->getParameter('id')));
$this->form = new extraFieldChqDejForm($sf_guard_user);
$this->processForm($request, $this->form,'extraFieldChqDej');
$this->setTemplate('extraFieldChqDej');
} |
et modifié le process form pour qu'il me recup le bon template:
1 2 3 4 5 6 7 8 9 10
| protected function processForm(sfWebRequest $request, sfForm $form, $template='edit')
{
$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid())
{
$sf_guard_user = $form->save();
$this->redirect('extrafieldsuser/'.$template.'?id='.$sf_guard_user->getId());
}
} |
je pense en avoir fait beaucoup trop, mais ça marche 
mais bon la je part du user pour aller vers legroupe alors qu'en général on partira du groupe en lui rajoutant un user
Partager