public function addAction() { $id = (int) $this->params()->fromRoute('id', 0); if (!$id) { return $this->redirect()->toRoute('admin/product-variant-value'); } $forrest = new Service\BreadcrumbService(); if (!$forrest->exists('product-variant-value')) { $forrest->set('product-variant-value', 'admin/product'); } $form = new Form\ProductVariantValue(); $form->get('submit')->setValue('Add'); $form->get('ProductVariant_id')->setValue($id); $request = $this->getRequest(); if ($request->isPost()) { $value = new Entity\ProductVariantValue(); #$form->setInputFilter($value->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $value->populate($form->getData()); $productvariant = $em->getRepository("ErsBase\\Entity\\ProductVariant")->findOneBy(array('id' => $value->getProductVariantId())); $value->setProductVariant($productvariant); $em->persist($value); $em->flush(); $breadcrumb = $forrest->get('product-variant-value'); return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options); } else { $logger = $this->getServiceLocator()->get('Logger'); $logger->warn($form->getMessages()); } } return new ViewModel(array('productvariant_id' => $id, 'breadcrumb' => $forrest->get('product-variant-value'), 'form' => $form)); }
/** * populate entity from base entities * * @param \ErsBase\Entity\ProductVariant $variant * @param \ErsBase\Entity\ProductVariantValue $value * @return \ErsBase\Entity\ItemVariant */ public function populateFromEntity(ProductVariant $variant, ProductVariantValue $value) { $this->setName($variant->getName()); $this->setProductVariantId($variant->getId()); $this->setValue($value->getValue()); $this->setProductVariantValueId($value->getId()); return $this; }