2012-09-11 145 views
0
主页

之前我使用Symfony2.1和我想做的事情是这样的:欢迎页面

Welcome page before main page

当用户来到我的网页/我想重定向他/欢迎。当他点击/ Welcome中的链接时,他应该被重定向到/页面,但是他应该再次看到主页(/)不受欢迎的页面。我怎样才能做到这一点与路由?可能吗?

在“正常”PHP中,我使用会话来做这件事,那么Symfony2呢?

编辑:

我解决了这个问题,像这样的会议:

我有两个途径:core_homepage(模式/)和welcome_homepage(模式/欢迎)。

//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

如果不是自己管理会话,最好使用Symfony Session对象。这样可以更加均匀地使用会话,并且如果稍后决定修改某些会话设置(如持续时间或保存时间),将会对您有所帮助。请参阅http://symfony.com/doc/current/book/controller.html#managing-the-session –

+0

我同意。我的例子中的会话是用本教程创建的:http://symfony.com/doc/master/components/http_foundation/sessions.html – repincln

回答

1

您可以使用会话。在用于'/'路线的控制器中,检查会话中是否设置了标志。如果不是,则重定向到“/ welcome”页面。在“/ welcome”路由的控制器中,在会话中设置此标志。

请注意,这只会在会话处于活动状态时持续。如果你想要一个更永久的设置,你将不得不坚持到数据库或类似的东西。

+0

谢谢,我解决了会话问题。 – repincln