如何在Symfony2控制器中获取操作名称?

Got*_*bel 7 php action controller symfony

有没有办法在Symfony2控制器中获取操作的名称?

public function createAction(Request $request, $title) {

    // Expected result: create
    $name = $this->getActionName();

}
Run Code Online (Sandbox Code Playgroud)

小智 18

使用:

$request->attributes->get('_controller');
// will get yourBundle\Controller\yourController::CreateAction

$params = explode('::',$request->attributes->get('_controller'));
// $params[1] = 'createAction';

$actionName = substr($params[1],0,-6);
// $actionName = 'create';
Run Code Online (Sandbox Code Playgroud)

  • 更重要的是,一个动作在其函数参数声明中可能没有请求占位符,那么变量$ request将不会被访问. (2认同)