CakePhp-呈现视图+;后滤器

CakePhp-呈现视图+;后滤器,cakephp,views,rendering,Cakephp,Views,Rendering,问题是我想调用index函数,我需要它来呈现视图,然后是 afterFilter再次重定向到index函数并执行相同操作。。就像一个循环,问题是它不能呈现它,我试着使用$this->render('index'),但它不起作用,还有其他一些东西 PS:我没有包括索引中的所有代码,因为它毫无意义,不带或不带它进行渲染,只包含视图所需的内容 function afterFilter() { if ($this->params['action'] == 'index') { sleep(

问题是我想调用index函数,我需要它来呈现视图,然后是 afterFilter再次重定向到index函数并执行相同操作。。就像一个循环,问题是它不能呈现它,我试着使用$this->render('index'),但它不起作用,还有其他一些东西

PS:我没有包括索引中的所有代码,因为它毫无意义,不带或不带它进行渲染,只包含视图所需的内容

function afterFilter()
{

if ($this->params['action'] == 'index')
{
   sleep(3);
   $this->redirect(array('action'=>'index',$id), null, true);
}

}

功能

function index($ido = 0)
{

$this->set('Operator', $this->Operator->read(null, $ido));
$this->set('ido', $ido);
}

视图=INDEX.CTP

操作员待机窗口
一个不断检查我的数据库是否有更改的函数,如果发生更改,我将重定向,如果没有,我需要有“检查数据库”和“呈现视图”的不断循环

这在使用PHP的服务器上是不可能的,尤其是CakePHP的模板系统。PHP只是在服务器上“生成页面”,并以线性方式将其发送到浏览器。如果在服务器上循环,页面内容将重复自身:

Normal content
Normal content
Normal content
<redirect>
正常内容
正常含量
正常含量
要重定向客户端,需要输出头。需要先输出标题,然后再输出其他内容。如果您已经循环了几次,并且内容已经发送到客户端,则无法再重定向

有两种方法:

  • 您只需一次输出一页,显示当前状态,并显示一个。这可能是相当昂贵和恼人的,虽然
  • 使用并可能在浏览器中动态更新页面上的信息

$this->redirect()
输出一个
位置
标题,将浏览器重定向到一个不同的站点,在本例中是循环的。这a)似乎不是个好主意,b)在
后过滤器中放错了位置。这里真正的目标是什么,为什么你需要它来循环?为什么你不试试JavaScript,它更容易…我也会质疑这种功能背后的逻辑,它似乎不合逻辑,而且是糟糕的系统设计。问题是,我需要有一个功能,不断检查我的数据库是否有变化,如果发生变化,如果不是,我需要有“检查数据库”和“呈现视图”的恒定循环。使用javascript实现这一点。
Normal content
Normal content
Normal content
<redirect>