Example #1
0
 public function editAction()
 {
     //initialization
     $form = new ProductAddForm();
     $status = $message = '';
     $id = (int) $this->params()->fromRoute('id', 0);
     $product = new Product();
     $db = new DbFunctions();
     //get product data
     $data = Product::getProduct($id);
     //    $data = $db->getEntity('product', $id);
     //if find 0 go product list
     if (empty($data)) {
         $status = 'error';
         $message = 'Продукт не знайдено';
         $this->flashMessenger()->setNamespace($status)->addMessage($message);
         return $this->redirect()->toRoute('admin/product');
     }
     $product->dbToProduct($data);
     $form->bind($product);
     //check request if(post) save  else show filled form on view
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             //save
             $product->update($id);
             $status = 'success';
             $message = 'Зміни збережено';
         } else {
             $status = 'error';
             $message = 'Помилка параметрів';
             foreach ($form->getInputFilter()->getInvalidInput() as $errors) {
                 foreach ($errors->getMessages() as $error) {
                     $message .= ' ' . $error;
                 }
             }
         }
     } else {
         return array('form' => $form, 'id' => $id);
     }
     //make message
     if ($message) {
         $this->flashMessenger()->setNamespace($status)->addMessage($message);
     }
     //go to product list
     return $this->redirect()->toRoute();
 }