Example #1
0
 public function addAction()
 {
     $formCategory = new CategoryForm();
     // On récupère l'objet Request
     $request = $this->getRequest();
     // On vérifie si le formulaire a été posté
     if ($request->isPost()) {
         // On instancie notre modèle Category
         $category = new Category();
         // Et on passe l'InputFilter de Category au formulaire
         $formCategory->setInputFilter($category->getInputFilter());
         $formCategory->setData($request->getPost());
         // Si le formulaire est valide
         if ($formCategory->isValid()) {
             // On prend les données du formulaire qui sont converti pour correspondre à notre modèle Category
             $category->exchangeArray($formCategory->getData());
             // On enregistre ces données dans la table Category
             $this->getServiceLocator()->get('Application\\Service\\CategoryService')->saveCategory($category);
             $this->getServiceLocator()->get('Zend\\Log')->info("La catégorie '{$category->name}' a été ajoutée");
             $this->flashMessenger()->addMessage(array('success' => "La catégorie '{$category->name}' a été ajoutée"));
             // Puis on redirige sur la page d'accueil.
             return $this->redirect()->toRoute('zfcadmin/category');
         } else {
             // Si le formulaire n'est pas valide, on reste sur la page et les erreurs apparaissent
             foreach ($formCategory->getMessages() as $messageId => $message) {
                 $this->getServiceLocator()->get('Zend\\Log')->err("Validation failure '{$messageId}': {$message}");
                 $this->flashMessenger()->addMessage(array('error' => "Validation failure '{$messageId}': {$message}"));
             }
         }
     }
     return new ViewModel(array('form' => $formCategory, 'flashMessages' => $this->flashMessenger()->getMessages()));
 }