获取到控制器symfony2的路由

时间:2014-02-13 08:04:24

标签: symfony url-routing

我正在试图弄清楚是否可以将路由(在routes.yml文件中定义)转换为特定的控制器?

一个例子可能会有所帮助。

class SomeRandomController extends Controller {
    public function showAction($id) {
        //Get the entity and return with a Response object
    }
}

在routes.yml ...

some_random_show:
    pattern: /some/random/thing/{id}/show
    defaults: { _controller: "MyBundle:SomeRandom:show", id: 0 }

所以我想要的是获取路由名称(如some_random_show中所示),如果我有类名及其名称空间(如MyBundle\Controller\SomeRandomController中所示)。有任何想法吗?

编辑让我说我知道这个动作,因为我特别想要一个控制器的show动作。

这背后的基本原理是一个黑客攻击,但它归结为我将类名和特定实体的id保存到数据库,然后我需要根据实体类I生成show URL持续存在。如果那有意义的话。

1 个答案:

答案 0 :(得分:0)

我认为这不会起作用,主要是因为Actions可以有多条路线。

但是,如果您要做的只是将特定实体类映射到特定路由名称,您应该考虑为其编写一个服务,该服务根据实体名称返回路由名称。

路由名称可以是通用的(例如,将您的实体名称转换为小写并将\替换为_),或者您可以在config.yml中手动定义哪个实体映射到哪条路径。