/** * {@inheritDoc} */ public function exchangeArray($data = array(), $sm = NULL, $em = NULL) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'exchangeArray', array($data, $sm, $em)); return parent::exchangeArray($data, $sm, $em); }
public function formulaireaffaireAction() { /******************************* Initialisation de variables *******************************/ // Récupération de l'EntityManager $em = $this->getEntityManager(); // Récupération du Service Manager $sm = $this->getServiceLocator(); // Récupération de la requete $request = $this->getRequest(); // Récupération du traducteur $translator = $this->getServiceLocator()->get('Translator'); // Récupération de la session de l'utilisateur $utilisateur = new Container('utilisateur'); /****************************** Initialisation du fournisseur ******************************/ $affaire = null; $id = (int) $this->params()->fromRoute('id'); if (!empty($id)) { // Récupération de l'affaire $affaire = $em->getRepository('Affaire\\Entity\\Affaire')->find($id); if ($affaire == null) { throw new \Exception($translator->translate('Cette affaire n\'existe pas')); } //Assignation de variables au layout $this->layout()->setVariables(array('headTitle' => $translator->translate('Modifier une affaire'), 'breadcrumbActive' => $affaire->getDesignationAffaire(), 'action' => 'formulaireaffaire', 'module' => 'affaire', 'plugins' => array('summernote', 'awesome-bootstrap-checkbox'))); } else { // On crée une nouvelle affaire $id = null; $affaire = new Affaire(); //Assignation de variables au layout $this->layout()->setVariables(array('headTitle' => $translator->translate('Nouvelle affaire'), 'breadcrumbActive' => $translator->translate('Nouvelle affaire'), 'action' => 'formulaireaffaire', 'module' => 'affaire', 'plugins' => array('summernote', 'awesome-bootstrap-checkbox'))); } // Creation du formulaire du affaire $form = new AffaireForm($translator, $sm, $em, $request, $affaire); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { /* Hydratation de l'objet affaire avec les données du formulaire */ $affaire->exchangeArray($form->getData(), $sm, $em); try { $em->persist($affaire); $em->flush(); } catch (\Exception $e) { $erreurMessage = $translator->translate('Une erreur est survenue durant la sauvegarde du affaire. Vérifiez que tous les champs sont valides.') . $e->getMessage(); $messagesFlash = $this->flashArray; $messagesFlash['errors'][] = $erreurMessage; $utilisateur->offsetSet('messagesFlash', $messagesFlash); return new ViewModel(array('affaire' => $affaire, 'form' => $form, 'id' => $id)); } return $this->redirect()->toRoute('affaire/consulter_affaire', array('id' => $affaire->getId())); } } return new ViewModel(array('affaire' => $affaire, 'form' => $form, 'id' => $id)); }