private function createProduct(ProductForm $form) { $values = $form->getValues(); $product = new Product($values->name, $values->price); $product->setDescription($values->description); if ($values->discountType === ProductForm::DISCOUNT_PERCENT) { $product->setDiscountPercent($values->discountPercent); } else { $product->setNominalDiscount($values->nominalDiscount); } $product->setCategories($this->categoryService->getByIds($values->categories)); /** @var FileUpload $fileUpload */ foreach ($values->imagesUpload as $fileUpload) { $this->productImageService->create($product, $fileUpload); } try { if (!$form->hasErrors()) { $this->productService->create($product); $this->flashMessage(sprintf('Product %s has been created.', $product->getName())); $this->redirect(':Admin:Product:List:'); } } catch (EntityDuplicateException $e) { $form->addError(sprintf('Product with name %s already exists.', $product->getName())); } }