我正在尝试将我的网址自动映射到控制器。
example.com/test | MyBundle:默认:索引
example.com/test/login | MyBundle:默认值:登录
这是我的方法但它尚未奏效。 问题是该操作应该是可选的,如果没有提供,则默认为“索引”。
应用/配置/ routing.php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
// load route collection object
$collection = new RouteCollection();
// add default route
$collection->add('default', new Route('/{_controller}/{_action}', array(
'_controller' => 'MyBundle:Default:Index',
), array('_method' => 'GET')
)
);
感谢任何帮助!
答案 0 :(得分:1)
Symfony在其工作流程中使用Request-Object中名为“_controller”的属性。在某个时刻,该属性填充了类似
的内容您还可以将此属性用作路线中的参数:
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
// load route collection object
$collection = new RouteCollection();
// add default route
$collection->add('default', new Route('/{_controller}'));
然后你可以调用http://example.com/MyBundle:Default:Index,它正确地解析并执行控制器。
但请确保,不要在生产环境中使用它,因为这实际上是不好的做法。