/** * @Route("/server/{platformid}/{serverid}/edit", name="_server_edit", requirements={ * "platformid": "([a-z0-9]{8})(\-[a-z0-9]{4}){3}(\-[a-z0-9]{12})", * "serverid": "([a-z0-9]{8})(\-[a-z0-9]{4}){3}(\-[a-z0-9]{12})" * }) */ public function editAction(Request $request, $platformid, $serverid) { $platform_repository = (new PlatformPeer())->getLdapManager()->getRepository('platform'); $platform = $platform_repository->getPlatformByUUID($platformid); $serverPeer = new ServerPeer($platform->getDn()); $server_repository = $serverPeer->getLdapManager()->getRepository('server'); $serverLdap = $server_repository->getServerByUUID($serverid); $tranformer = new ZacaciaTransformer(); $server = $tranformer->transServer($serverLdap); $form = $this->createForm(ServerType::class, $server); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { try { $serverLdap->setZacaciastatus($server->getZacaciastatus()); $serverPeer->updateServer($serverLdap); return $this->redirectToRoute('_server', array('platformid' => $platform->getEntryUUID())); } catch (LdapConnectionException $e) { echo "Failed to update server!" . PHP_EOL; echo $e->getMessage() . PHP_EOL; } } return $this->render('ZacaciaBundle:Server:edit.html.twig', array('platform' => $platform, 'server' => $server, 'form' => $form->createView())); }