在CakePHP中,可以使用
获取被调用的函数字符串$this->action
语法。它返回任何被调用的文字字符串,因此如果URL为/do_this
,则返回do_this
,如果为doThis
,则返回doThis
。无论被调用方法的真实名称如何。
另一方面,我所寻找的是被调用方法的实际名称,无论URL语法如何。
有没有办法找到它?
我最好能够在beforeFilter
方法中执行此操作。
答案 0 :(得分:20)
您应该使用请求对象。
CakePHP 3.3及以下
$this->request->params['action'];
自3.4起
$this->request->getParam('action');
我认为这应该包含被调用的真实方法名称。 CakePHP路由器将字符串URL解析为控制器/操作对和其他args,所有这些都在请求对象中结束。阅读文档并在beforeFilter()中执行debug($this->request);
以查看其他内容。
答案 1 :(得分:4)
在CakePHP 2中你可以使用$ this->动作,在CakePHP 3中你必须使用$ this-> request-> params ['action']
答案 2 :(得分:3)
不推荐使用params
数组(CakePHP> = 3.4)在控制器中获取当前操作的正确方法是:
$currentAction = $this->request->getParam('action');
答案 3 :(得分:0)