public function editAction() { $certificate = $this->getCertificateFromRoute(); if (!$certificate) { return $this->redirect()->toRoute('home'); } $form = CertificateFactory::createCertificateForm($certificate->getType()); $ISIN = $certificate->ISIN; $form->bind($certificate); $form->get('submit')->setValue('Edit'); $request = $this->getRequest(); if ($request->isPost()) { $form->setupInputFilter(); $form->setData($request->getPost()); if ($form->isValid()) { $this->getCertificatesTable()->save($certificate); $this->getPriceHistoryTable()->save($certificate->ISIN, $certificate->currentPrice); return $this->redirect()->toRoute('home'); } } return array('form' => $form, 'type' => $certificate->getType(), 'ISIN' => $ISIN); }