ari*_*rik 11 php action controller cakephp
在CakePHP中,可以使用.获取被调用的函数字符串
$this->action
Run Code Online (Sandbox Code Playgroud)
句法.它返回的任何被称为文字串,所以如果URL /do_this,它返回do_this,并且如果它是doThis,它会返回doThis.无论被调用方法的真实名称如何.
另一方面,我正在寻找的是被调用方法的实际名称,无论URL语法如何.
有没有办法找到它?
我最好能够在beforeFilter方法中做到这一点.
bur*_*zum 22
您应该使用请求对象.
CakePHP 3.3及以下版本
$this->request->params['action'];
Run Code Online (Sandbox Code Playgroud)
自3.4
$this->request->getParam('action');
Run Code Online (Sandbox Code Playgroud)
我认为这应该包含被调用的真实方法名称.CakePHP路由器将字符串URL解析为控制器/操作对和其他args,所有这些都在请求对象中结束.阅读文档并debug($this->request);在beforeFilter()中进行操作以查看其他内容.
你看过这个吗? 检索 php 中当前函数的名称 这显然在 beforeFilter 中不起作用。您可以在控制器中设置一个变量: private $action_name 并在方法中设置它,然后在 afterFilter 中使用它