我正在使用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中的请求栈的解决方案将是不错的选择,因为这似乎有些过分。
这样有效
因为我认为唯一的区别是我不传递= 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] 删除。
我来说两句