cakePHP—可在执行任何控制器操作后调用的函数
我需要一个可以在任何控制器方法执行后调用的函数 例如,cakePHP—可在执行任何控制器操作后调用的函数,php,cakephp,callback,Php,Cakephp,Callback,我需要一个可以在任何控制器方法执行后调用的函数 例如,beforeFilter()在执行任何控制器操作之前,总是调用应用程序控制器中的beforeFilter(),类似地,我需要类似于afterFilter()的东西 afterFilter()的问题是在控制器操作之前执行 我有一个控制器名TestController和一个动作test(),代码如下: TestController.php function test() { echo 'test';exit; } function af
beforeFilter()
在执行任何控制器操作之前,总是调用应用程序控制器中的beforeFilter()
,类似地,我需要类似于afterFilter()
的东西
afterFilter()
的问题是在控制器操作之前执行
我有一个控制器名TestController
和一个动作test()
,代码如下:
TestController.php
function test() {
echo 'test';exit;
}
function afterFilter() {
echo 'afterfilter';exit;
}
在afterFilter()
中,我输入了以下代码:
AppController.php
function test() {
echo 'test';exit;
}
function afterFilter() {
echo 'afterfilter';exit;
}
然后只执行afterFilter()
对上述行的评论如下:
function afterFilter() {
//echo 'afterfilter';exit;
}
TestController:test()
执行。因此,afterFilter()
在控制器方法之前被调用。我需要一个在它之后被调用的函数,而不管控制器名称或操作名称。我想你要搜索的是。我想你要搜索的是。根据:
Controller::afterFilter()
在每个控制器操作之后以及渲染完成之后调用。这是最后一个要运行的控制器方法
您的AppController::afterFilter()
回调正在按预期工作。您可能认为它是在TestController::test()
之前被调用的,因为您无法在浏览器上看到任何输出
试试这个:
function afterFilter() {
echo 'afterfilter';
echo $this->response;
exit();
}
根据报告:
Controller::afterFilter()
在每个控制器操作之后以及渲染完成之后调用。这是最后一个要运行的控制器方法
您的AppController::afterFilter()
回调正在按预期工作。您可能认为它是在TestController::test()
之前被调用的,因为您无法在浏览器上看到任何输出
试试这个:
function afterFilter() {
echo 'afterfilter';
echo $this->response;
exit();
}
我在php中找到了
register\u shutdown\u function()
。这就是诀窍。我在php中找到了register\u shutdown\u function()
。这就是诀窍。页面呈现两次,我想在页面呈现后执行一些代码,但我有一个问题,因为routes.php中未定义的URL没有通过AppController过滤器,您不应该调用echo$this->response代码>。这只是为了证明我的观点。无论您在afterFilter()
中包含什么,都将是最后要执行的。是的,但是当我从afterFilter中回显某个内容时,它会在页面顶部回显,这意味着它会在页面呈现之前回显。不要混淆呈现视图和显示视图。视图已渲染,但未显示。如果您告诉我您在afterFilter()
中想要实现什么,也许我可以提供一些提示。页面呈现两次,我想在页面呈现后执行一些代码。我有一个问题,对于routes.php中未定义的URL,没有通过AppController筛选器。您不应该调用echo$this->response代码>。这只是为了证明我的观点。无论您在afterFilter()
中包含什么,都将是最后要执行的。是的,但是当我从afterFilter中回显某个内容时,它会在页面顶部回显,这意味着它会在页面呈现之前回显。不要混淆呈现视图和显示视图。视图已渲染,但未显示。如果您告诉我您在afterFilter()
中想要实现什么,也许我可以提供一些提示。