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