public function createAction() { $form = new SquadForm(); $form->setEntityManager($this->getEntityManager()); $form->init(); if ($this->getRequest()->isPost()) { $form->setData(array_merge_recursive($_POST, $_FILES)); if ($form->isValid()) { /** @var \Frontend\Squads\Entity\Squad $squad */ $squad = $form->getData(); $squad->setUser($this->getEntityManager()->getReference('Auth\\Entity\\Benutzer', $this->identity()->getId())); $squadImageService = $this->getServiceLocator()->get('SquadImageService'); $uploadedLogoSpecs = $squad->getLogo(); // logo set? if ($uploadedLogoSpecs && $uploadedLogoSpecs['error'] != 4) { $squadLogoID = $squadImageService->saveLogo($uploadedLogoSpecs); if ($squadLogoID !== false) { $squad->setLogo($squadLogoID); } else { $squad->setLogo(null); } } else { // no logo change $squad->setLogo(null); } // new squad url $squadRepo = $this->getEntityManager()->getRepository('Frontend\\Squads\\Entity\\Squad'); $squadRepo->createUniqueToken($squad); $this->getEntityManager()->persist($squad); $this->getEntityManager()->flush(); $this->flashMessenger()->addSuccessMessage('Squad successfully created!'); return $this->redirect()->toRoute('frontend/user/squads'); } else { $form->populateValues($this->getRequest()->getPost()); } } $viewModel = new ViewModel(); $viewModel->setTemplate('/squads/create.phtml'); $viewModel->setVariable('form', $form); return $viewModel; }