Symfony2-通过多个参数访问控制器参数列表中的Request对象

思凡

我正在使用Symfony 2.4,根据文档,在控制器中检索Request对象的正确方法如下:

/**
 * @Route("/register/next", name="next_registration_step")
 */
public function nextAction(Request $request = null) {...}

这按预期工作。但是,如果我向控制器添加参数,则$ request在运行时将为null:

/**
 * @Route("/register/next/{currentStep}", name="next_registration_step")
 */
public function nextAction(Request $request = null, $currentStep = 0) {...}

我如何解决此问题而不使用任何旧的但已弃用的方法来获取请求?

注意:如果可能的话,不涉及最近引入到Symfony 2.4中的请求栈的解决方案将是不错的选择,因为这似乎有些过分。

皮奥特·帕西奇(Piotr Pasich)

这样有效

因为我认为唯一的区别是我不传递= null参数声明

use Symfony\Component\HttpFoundation\Request;

/**
 * @Route("/hello/{name}", name="_demo_hello")
 */
public function helloAction(Request $request, $name)
{
    var_dump($request, $name);die();

在Symfony2控制器中,在方法定义中声明默认值不是一个好主意-应该在路由定义中完成。

在您的情况下:

 /*
 *
 * @Route("/register/next/{currentStep}", name="next_registration_step", defaults={"currentStep" = 0})
 */
public function next(Request $request, $currentStep) {...}

问候,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章