我正在试图弄清楚是否可以将路由(在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持续存在。如果那有意义的话。
答案 0 :(得分:0)
我认为这不会起作用,主要是因为Actions可以有多条路线。
但是,如果您要做的只是将特定实体类映射到特定路由名称,您应该考虑为其编写一个服务,该服务根据实体名称返回路由名称。
路由名称可以是通用的(例如,将您的实体名称转换为小写并将\替换为_),或者您可以在config.yml中手动定义哪个实体映射到哪条路径。