2011-07-27 59 views
0

我无法从beforeFilter设置valitationErrors。为什么?无法从beforeFilter设置验证错误

function beforeFilter() { 
    if ($this->Session->check('errors')) { 
     $this->validationErrors = array ('Question' => array('text' => 'notEmpty')); 
    } 
} 

我都尝试 “$这个 - > validationErrors” 和 “$这个 - >型号 - > validationErrors” 和他们都不工作。当我进入视图时,Debug Kit报告$ this-> validationErrors变量为空。

+1

你介意我问你为什么试图让他们在beforeFilter()? –

回答

0

没关系,我刚刚发现,当你改变validationErrors时,你用来调用它的模型就是它将要验证的模型。所以如果你想验证问题,你应该调用$ this-> Question-> validationErrors = ...

谢谢大家。 :)

1

我从来没有尝试过,但也许该模型尚未在该阶段初始化。您可能需要将其保存以用于实际操作。

+0

这是个好主意。但是我也无法将它设置在控制器上。 :( – dccarmo

+0

是什么意思?是不是beforeFilter控制器方法?您可以尝试记录$ this-> ModelName的输出以查看它是否为null。您可以将错误保存到Session并稍后使用它们,因为它们无论如何都不会渲染。 –