如何从 Symfony 控制器中的路由名称检索路由模式
How to retrieve a route pattern from a route name in a Symfony Controller
我想基本上得到与 Twig 函数 path(routeName) 相同的结果,但在 view.html.twig 中却没有但在控制器本身内部。
routing.yml :
MyBundle_route_first:
pattern: /dummy/first/{foo}
defaults: { _controller: MyBundle:Dummy:First }
requirements:
_method: GET
foo: \d+
MyBundle_route_second:
pattern: /dummy/second/{foo}/{bar}
defaults: { _controller: MyBundle:Dummy:Second }
requirements:
_method: GET
foo: \d+
bar: \d+
controller.php :
class DummyController extends Controller {
public function firstAction($foo) {
// do some stuff
}
public function secondAction($foo, $bar) {
// do some stuff
}
public function anotherAction() {
$firstRoutePattern = some_magic_function("MyBundle_route_first");
// "/dummy/first/{foo}"
$secondRoutePattern = some_magic_function("MyBundle_route_second");
// "/dummy/second/{foo}/{bar}"
}
}
对于相关主题的任何帮助或 link 将不胜感激。
祝你有美好的一天:-)
看看这个方法:generate
$firstRoutePattern = $this->container->get('router')->generate('MyBundle_route_first', array('foo' => $foo));
我想基本上得到与 Twig 函数 path(routeName) 相同的结果,但在 view.html.twig 中却没有但在控制器本身内部。
routing.yml :
MyBundle_route_first:
pattern: /dummy/first/{foo}
defaults: { _controller: MyBundle:Dummy:First }
requirements:
_method: GET
foo: \d+
MyBundle_route_second:
pattern: /dummy/second/{foo}/{bar}
defaults: { _controller: MyBundle:Dummy:Second }
requirements:
_method: GET
foo: \d+
bar: \d+
controller.php :
class DummyController extends Controller {
public function firstAction($foo) {
// do some stuff
}
public function secondAction($foo, $bar) {
// do some stuff
}
public function anotherAction() {
$firstRoutePattern = some_magic_function("MyBundle_route_first");
// "/dummy/first/{foo}"
$secondRoutePattern = some_magic_function("MyBundle_route_second");
// "/dummy/second/{foo}/{bar}"
}
}
对于相关主题的任何帮助或 link 将不胜感激。
祝你有美好的一天:-)
看看这个方法:generate
$firstRoutePattern = $this->container->get('router')->generate('MyBundle_route_first', array('foo' => $foo));