/** * 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; }
public function addAction() { $product_id = (int) $this->params()->fromRoute('id', 0); if (!$product_id) { return $this->redirect()->toRoute('admin/product'); } $forrest = new Service\BreadcrumbService(); if (!$forrest->exists('product-variant')) { $forrest->set('product-variant', 'admin/product-variant'); } $form = new Form\ProductVariant(); $form->get('submit')->setValue('Add'); $form->get('Product_id')->setValue($product_id); $options['text'] = 'Text'; $options['select'] = 'Select'; $options['date'] = 'Date'; $options['datetime'] = 'Datetime'; $form->get('type')->setAttribute('options', $options); $request = $this->getRequest(); if ($request->isPost()) { $productvariant = new Entity\ProductVariant(); #$form->setInputFilter($productvariant->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $productvariant->populate($form->getData()); $product = $em->getRepository("ErsBase\\Entity\\Product")->findOneBy(array('id' => $productvariant->getProductId())); $productvariant->setProduct($product); $em->persist($productvariant); $em->flush(); $breadcrumb = $forrest->get('product-variant'); return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options); } else { $logger = $this->getServiceLocator()->get('Logger'); $logger->warn($form->getMessages()); } } $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $product = $em->getRepository("ErsBase\\Entity\\Product")->findOneBy(array('id' => $product_id)); $breadcrumb = $forrest->get('product-variant'); return new ViewModel(array('breadcrumb' => $breadcrumb, 'product' => $product, 'form' => $form)); }