如何访问当前占位符值?

时间:2017-07-15 07:58:54

标签: php symfony routing

Symfony 3.4。 我有我的控制器的注释:

/**
 *
 * @Route("/{prefix}", requirements={"prefix":"daily_task|event"})
 */
class TaskController extends Controller

并希望直接从控制器的方法(不是路由的操作)访问当前的{prefix}值。如何获得它的价值?

2 个答案:

答案 0 :(得分:1)

最后:$ this-> get('request_stack') - > getCurrentRequest() - > get('prefix')

答案 1 :(得分:0)

如果您将变量用作函数参数,Symfony会自动传递变量,如下所示:

/**
 *
 * @Route("/{prefix}", requirements={"prefix":"daily_task|event"})
 */
class TaskController extends Controller {
  /**
   * @Route("/{_locale}/some/path", name="_some_route_name")
   */
  public function actualAction($prefix, $_locale) { /* ... */  }
}

或者你可以像这样使用整个请求:

/**
 *
 * @Route("/{prefix}", requirements={"prefix":"daily_task|event"})
 */
class TaskController extends Controller {
  /**
   * @Route("/{_locale}/some/path", name="_some_route_name")
   */
  public function actualAction(Request $request) { 
     $prefix = $request->get('prefix');
  }
}