2012-09-11 5 views
0

전에 내가 Symfony2.1를 사용하여 '나는 이런 식으로 뭔가를 할 :시작 페이지 메인 페이지

Welcome page before main page

사용자가 내 페이지에 올 때/나는 그 /에 오신 것을 환영합니다 리디렉션합니다./welcome에있는 링크를 클릭하면/page로 리디렉션되어야하지만 메인 페이지 (/)가 다시 시작 페이지가 아니어야합니다. 라우팅에서 어떻게해야합니까? 가능한가?

"정상적인"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'라우트의 컨트롤러에서이 플래그를 세션에 설정하십시오.

세션이 활성화 된 동안에 만 지속됩니다. 좀 더 영구적 인 설정을 원한다면 이것을 데이터베이스 나 그와 비슷한 것으로 유지해야 할 것입니다.

+0

감사합니다. 세션에 대한 문제를 해결했습니다. – repincln