从静态方法Symfony2重定向?

时间:2011-09-23 01:06:21

标签: php methods static redirect 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();
}

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

1 个答案:

答案 0 :(得分: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'));