从静态方法Symfony2重定向?

Oua*_*die 1 php methods redirect static symfony

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

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



    return $user->getRecruteur();
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用新的Controller() - >但它不起作用,所以如何从静态方法调用redirect().谢谢.

gil*_*den 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'));
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以在控制器中调用它

Foo::check($this->get('security.context'), $this->get('router'));
Run Code Online (Sandbox Code Playgroud)