2011-09-23 88 views
1
static public function check($securityContext) 
{ 
    $user = $securityContext->getToken()->getUser(); 

    if(is_object($user) && [...]) 
    return **$this**->redirect(**$this**->generateUrl('route_recruteur_monespace')); 



    return $user->getRecruteur(); 
} 

我試着用新的控制器() - >但它不工作,所以我怎麼能從靜態方法調用重定向()。 謝謝。從靜態方法Symfony2重定向?

回答

6

你可以通過所需的靜態方法

use Symfony\Component\HttpFoundation\RedirectResponse; 

class Foo 
{ 
    static public function check($securityContext, $router) 
    { 
     $user = $securityContext->getToken()->getUser(); 

     // ... 

     return new RedirectResponse($router->generate('route_name')); 
    } 
} 

然後你可以把它在你的控制器服務

Foo::check($this->get('security.context'), $this->get('router')); 
+0

這是我做什麼,感謝;) – Ouadie

+0

調用未定義的方法的Symfony \ Bundle \ FrameworkBundle \ Routing \ Router :: generateUrl() – Emerald214

+0

@ Emerald214輕微的錯字,感謝您的注意。 – gilden