1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| public function modifListAction(ListUser $list)
{
if(!$this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY')){
throw new AccessDeniedException("modification d'une liste");
}
$formList = $this->createForm(new ListUserType(), $list);
//on crée ensuite un deuxième formulairequi va juste avoir un champ file
$formBuilderFile = $this->createFormBuilder()->add('file','file', array(
'required' => false,
));
$formFile = $formBuilderFile->getForm();
$request = $this->get('request');
if ($request->getMethod() == 'POST') {
foreach($list->getMembersOfList() as $member){
$list->removeMembersOfList($member);
}
$formList -> handleRequest($request);
$formFile -> handleRequest($request);
if ($formList->isValid() && $formFile->isValid()) {
$em = $this->getDoctrine()->getManager();
$file = $formFile['file'] -> getData();
//on regarde si un fichier a été envoyé, si c'est le cas on ajoute les mails contenus dans le fichier, sinon on passe à l'ajout de la liste
if($file != null){
//je ne copie pas le code présent dans cette boucle, j'y fais simplement un traitement sur un fichier excel car j'autorise la personne à indiquer des membres directement depuis un fichier excel
}
foreach($list->getMembersOfList() as $member){
if($member->getListUser() === null){
$member->setListUser($list);
}
}
$em -> persist($list);
$em -> flush();
$this->get('session')->getFlashBag()->add(
'message',
'Votre liste nommée '. $list->getName() .' a bien été modifiée.'
);
return $this->redirect($this->generateUrl('in_apps_pass_way_manage_lists'));
}
}
return $this->render('InAppsPassWayBundle:List:createList.html.twig', array(
'formList' => $formList->createView(),
'formFile' => $formFile->createView()
));
} |
Partager