在控制器 Symfony 中省略参数
Omit Argument in Controller Symfony
我正在学习 symfony 的书,我读到我可以在我的控制器中省略参数 (http://symfony.com/doc/2.3/book/controller.html#route-parameters-as-controller-arguments)
我试过这个配置
我的路线
_demo:
path: /{lastName}
defaults: { _controller: AcmeDemoBundle:Demo:index}
还有我的控制器
public function indexAction(){
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
访问不带参数( lastName )的路由时
http://localhost:8000/app_dev.php/
我收到这个错误
No route found for "GET /"
但是在 symfony 书中我可以阅读:
Not all routing parameters need to be arguments on your controller
If, for example, the lastName weren't important for your controller,
you could omit it entirely:
我正在使用 symfony 2.3
非常感谢!
现在您没有带 /
的路线,而是带参数 /{param}
的路线
如果您访问
http://localhost:8000/app_dev.php/foo
你可以得到这条路线,你可以在你的控制器中省略参数
public function indexAction()
{
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
该参数在您的控制器中是可选的,而不是在您的路线中。然后如果你想要/
route,你必须创建一个新的route。
例如
_demo2:
path: /
defaults: { _controller: AcmeDemoBundle:Demo:index2}
您可以使用
检查您的路线
php app/console router:debug
您可以阅读所有路线
为了让您的路由从您的控制器命中 indexAction,您需要为 lastName
指定一个默认值:
_demo:
path: /{lastName}
defaults: { _controller: AcmeDemoBundle:Demo:index, lastName: null}
我正在学习 symfony 的书,我读到我可以在我的控制器中省略参数 (http://symfony.com/doc/2.3/book/controller.html#route-parameters-as-controller-arguments)
我试过这个配置
我的路线
_demo:
path: /{lastName}
defaults: { _controller: AcmeDemoBundle:Demo:index}
还有我的控制器
public function indexAction(){
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
访问不带参数( lastName )的路由时
http://localhost:8000/app_dev.php/
我收到这个错误
No route found for "GET /"
但是在 symfony 书中我可以阅读:
Not all routing parameters need to be arguments on your controller
If, for example, the lastName weren't important for your controller, you could omit it entirely:
我正在使用 symfony 2.3 非常感谢!
现在您没有带 /
的路线,而是带参数 /{param}
如果您访问
http://localhost:8000/app_dev.php/foo
你可以得到这条路线,你可以在你的控制器中省略参数
public function indexAction()
{
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
该参数在您的控制器中是可选的,而不是在您的路线中。然后如果你想要/
route,你必须创建一个新的route。
例如
_demo2:
path: /
defaults: { _controller: AcmeDemoBundle:Demo:index2}
您可以使用
检查您的路线php app/console router:debug
您可以阅读所有路线
为了让您的路由从您的控制器命中 indexAction,您需要为 lastName
指定一个默认值:
_demo:
path: /{lastName}
defaults: { _controller: AcmeDemoBundle:Demo:index, lastName: null}