public function addCategoryToTournament($category, $tournament, $controller) { $categoryEntity = new Category(); $categoryEntity->setName(isset($category['name']) ? $category['name'] : ''); $categoryEntity->setBgColor(isset($category['bgColor']) ? $category['bgColor'] : ''); $categoryEntity->setRegisteredLimitMax(isset($category['registeredLimitMax']) && is_int($category['registeredLimitMax']) ? $category['registeredLimitMax'] : 0); $categoryEntity->setRegisteredLimitMin(isset($category['registeredLimitMin']) && is_int($category['registeredLimitMin']) ? $category['registeredLimitMin'] : 0); $categoryEntity->setGender(isset($category['gender']) ? $category['gender'] : null); $categoryEntity->setTournament($tournament); $validator = $controller->get('validator'); $errors = $validator->validate($categoryEntity); if (count($errors) > 0) { $errorsString = (string) $errors; return array('result' => 'fail', 'message' => $errorsString); } $this->em->persist($categoryEntity); $this->em->flush(); return array('result' => 'ok', 'message' => $categoryEntity); }