2013-04-05 59 views
4

难道是可以通过$this->set('variable_name', 'some_value') 在控制器的方法本身来跟踪所有设置变量。 其实我有一个方法,调用其他几个方法和每个子方法设置值来查看。现在我无法跟踪主要方法中是否设置了两次相同的按键。的CakePHP知道在控制器中的所有设置变量本身

例如

function beforeFilter() 
{ 
    $this->set('key1', 'viable value'); 
} 


function reqMethod() 
{ 
    $this->extendMethod1(); 
    $this->extendMethod2(); 
    $this->extendMethod3(); 
    $this->extendMethod4(); 
    $this->extendMethod5(); 
    $this->extendMethod6(); 
      // Want to track all set variable (key) here. 
} 

private function extendMethod1() 
{ 
    $this->set('key1', 'unknow value'); 
} 

这可以可能的是,KEY1(错误)可被设置为其他方法。 任何帮助真的不胜感激。

回答

4

控制器::设置()只是增加值(S)到 'viewVars' 属性,因此调试所有这些变量,你只有做到这一点:

debug($this->viewVars); 

你可以自己发现,通过查看源内部?

view the source

+1

谢谢!!它有助于追踪我所犯的错误。 是的,我必须看看它..但我错过了这一点。 – MaNKuR 2013-04-05 12:01:59

+0

可以确认在CakePHP 3上同样适用 – arithran 2017-03-14 14:00:05

+0

在CakePHP 3中很多事情都发生了变化,所以它可能会有所不同,但是在更换作业之后我碰了一下CakePHP已经有一段时间了 – thaJeztah 2017-03-15 10:40:36

0

一种可能的方法是将其写入会话。例如。在beforeFilter()

function beforeFilter() 
{ 
    $this->set('key1', 'viable value'); 
    $this->Session->write ('key1', true); 
} 

private function extendMethod1() 
{ 
    $this->set('key1', 'unknow value'); 
    if ($this->Session->check('key1') 
    { 
     // whatever needs to be done. 
    } 
} 
+0

感谢您的时间和精力 – MaNKuR 2013-04-05 13:26:46

相关问题