Php 忽略控制器Symfony中的参数
我正在学习symfony的书,我读到可以省略控制器()中的参数 我尝试过这种配置 我的路线Php 忽略控制器Symfony中的参数,php,symfony,Php,Symfony,我正在学习symfony的书,我读到可以省略控制器()中的参数 我尝试过这种配置 我的路线 _demo: path: /{lastName} defaults: { _controller: AcmeDemoBundle:Demo:index} 还有我的控制器 public function indexAction(){ return $this->render('AcmeDemoBundle:Demo:index.html.twig'); } public f
_demo:
path: /{lastName}
defaults: { _controller: AcmeDemoBundle:Demo:index}
还有我的控制器
public function indexAction(){
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
public function indexAction()
{
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
当我访问没有参数(lastName)的路由时
我得到这个错误
No route found for "GET /"
但在symfony的书中,我可以读到:
并非所有路由参数都需要是控制器上的参数
例如,如果姓氏对控制器不重要,
你可以完全忽略它:
我用的是symfony2.3
非常感谢 现在您没有带有
/
的路由,而是带有参数/{param}
如果你访问
http://localhost:8000/app_dev.php/foo
您可以获得此路由,并且可以省略控制器中的参数
public function indexAction(){
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
public function indexAction()
{
return $this->render('AcmeDemoBundle:Demo:index.html.twig');
}
参数在控制器中是可选的,而不是在路由中。然后,如果您想要/
路由,您必须创建一个新路由
例如
你可以通过电话查询你的路线
php app/console router:debug
您可以读取所有路由为了使路由从控制器中点击索引操作,您需要为
lastName
指定默认值:
_demo:
path: /{lastName}
defaults: { _controller: AcmeDemoBundle:Demo:index, lastName: null}