Cakephp抛出异常和属性重置

时间:2014-08-29 21:14:50

标签: cakephp exception

我有一个组件并且有一个属性测试。在控制器中,我这样做:

$this->ApiRequest->test = "gg";
throw new NotFoundException;

执行ExceptionRenderer后,我尝试读取组件的beforeRender方法中的属性:

public function beforeRender(Controller $controller) {
echo $this->test;

属性测试是空的。如果我不抛出异常,一切正常...... 这是正常的行为吗?怎么避免呢?

2 个答案:

答案 0 :(得分:0)

如果你这样做结束:

if (!$this->ApiRequest->exists()) {
   throw new NotFoundException(__('Invalid'));
}

答案 1 :(得分:0)

这是因为当抛出异常时,CakePHP会创建一个新的控制器。