注销后我想重定向到索引页面,但我在FOSUserBundle中收到错误
在SecurityController.php中
<?php
namespace ispg\Bundle\ChatBundle\Controller;
namespace FOS\UserBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
class SecurityController extends ContainerAware
{
public function loginAction()
{
$request = $this->container->get('request');
/* @var $request \Symfony\Component\HttpFoundation\Request */
$session = $request->getSession();
/* @var $session \Symfony\Component\HttpFoundation\Session */
$network = $request->get("network");
// get the error if any (works with forward and redirect -- see below)
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} elseif (null !== $session && $session->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
$session->remove(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = '';
}
if ($error) {
// TODO: this is a potential security risk (see http://trac.symfony-project.org/ticket/9523)
$error = $error->getMessage();
}
// last username entered by the user
$lastUsername = (null === $session) ? '' : $session->get(SecurityContext::LAST_USERNAME);
//create the select tag for network selection
require 'mnoNetworks.php';
$selectHtml = "<select id=\"networks\">
<option value=\"\"> -- Select -- </option>";
foreach($networks as $network){
$selectHtml .= "<option value=\"".$network."\">".$network."</option>";
}
$selectHtml .="</select>";
return $this->container->get('templating')->renderResponse('FOSUserBundle:Security:login.html.'.$this->container->getParameter('fos_user.template.engine'), array(
'last_username' => $lastUsername,
'error' => $error,
'network' => $network,
'networkSelector' => $selectHtml
));
}
public function checkAction()
{
throw new \RuntimeException('You must configure the check path to be handled by the firewall using form_login in your security firewall configuration.');
}
public function logoutAction()
{
$bundle2 = new \ispg\Bundle\ChatBundle\Controller\DefaultController();
$bundle2->setContainer($this->container);
$returned_data = $bundle2->san();
}
}
在logoutAction会话之后我想重定向到索引页面
如何重定向到它。
有人可以解决这个问题吗?
答案 0 :(得分:3)
您需要在logoutAction()
...
return $this->redirect($this->generateUrl('name_of_route'));
答案 1 :(得分:3)
Jaitsu是对的,只是你的Controller扩展了ContainerAware而不是Controller类,它提供了基本控制器动作的快捷方式......
return new Symfony\Component\HttpFoundation\RedirectResponse($this->generateUrl('name_of_route'));