public function initbuildAction(Request $request) { /* @var $em \Doctrine\ORM\EntityManager */ $em = $this->get('doctrine')->getManager(); $core_world = $request->request->get('core_world'); if (!$core_world) { $this->get('session')->getFlashBag()->set('error', "A core world is required."); return $this->redirect($this->generateUrl('deck_buildform')); } $world = $em->getRepository('AppBundle:Card')->findOneBy(array("id" => $core_world)); $tags = [$world->getName()]; $faction = $em->getRepository('AppBundle:Faction')->findOneBy(array("id" => $world->getFaction()->getId())); if (!$faction) { $this->get('session')->getFlashBag()->set('error', "A faction is required."); return $this->redirect($this->generateUrl('deck_buildform')); } $tags[] = $faction->getCode(); $name = sprintf("New deck: %s", $faction->getName()); $pack = $em->getRepository('AppBundle:Pack')->findOneBy(array("code" => "core")); $deck = new Deck(); $deck->setDescriptionMd(""); $deck->setFaction($faction); $deck->setCoreWorld($world); $deck->setLastPack($pack); $deck->setName($name); $deck->setProblem('deckSize'); $deck->setTags(join(' ', array_unique($tags))); $deck->setUser($this->getUser()); $em->persist($deck); $em->flush(); return $this->redirect($this->get('router')->generate('deck_edit', ['deck_id' => $deck->getId()])); }