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(); }