我使用Symfony2.1,我想做这样的事情:
当用户访问我的页面/我想将他重定向到/ welcome。当他点击/ welcome中的链接时,他应该被重定向到/ page,但是他应该再次看到主页面(/)不欢迎页面。如何通过路由执行此操作?有可能吗?
在“普通”PHP中,我使用会话,Symfony2怎么样?
修改
我用这样的会话解决了这个问题:
我有两条路线:core_homepage(pattern /)和welcome_homepage(pattern / welcome)。
//Controller for core:
public function indexAction()
{
$session = new Session();
$session->start();
if ($session->get('welcome_flag')=='0'){
return $this->render('MarkCoreBundle:Default:index.html.twig');
} else {
return $this->redirect($this->generateUrl('welcome_homepage'));
}
}
//Controller for welcome:
public function indexAction()
{
$session = new Session();
$session->start();
if ($session->get('welcome_flag') == '0'){
return $this->redirect($this->generateUrl('core_homepage'));
} else {
$session->set('welcome_flag', '0');
return $this->render('MarkWelcomeBundle:Default:index.html.twig');
}
}
如果有人有任何其他解决方案,请发布。
答案 0 :(得分:1)
您可以使用会话。在'/'路由的控制器中检查会话中是否设置了标志。如果不是,请重定向到“/ welcome”页面。在'/ welcome'路由的控制器中,在会话中设置此标志。
请注意,这只会在会话处于活动状态时持续。如果你想要一个更永久的设置,你将不得不将其持久化到数据库或类似的东西。