在使用CakePHP 2.5.1时,在特定模型上我正在调用afterSave。但它只有在我设置调试级别> 0(即Configure :: write('debug',0);)时才有效。
/**
* afterSave callback
*
* @param $created boolean
* @param $options array
* @return void
*/
public function afterSave($created, $options = array()) {
if($created) {
CakeResque::enqueue('myqueue', 'MyShell', array('MyFunction', 'arg1', 'arg2'));
CakeLog::write('debug', 'doesnt give anything' );
}
return true;
}
奇怪的是,一切工作正常,调试级别设置为1或2,这在生产模式下是不可接受的。此外,日志中没有写入任何内容,因此似乎甚至没有调用afterSave函数。
答案 0 :(得分:0)
实际上,这与模型无关。在控制器中有一个特定的功能 - 用于检查用户是否有足够的信用 - 我在之前调用给出了一个不可见的错误(尽管它返回 true !) ,因为递归设置为0而不是-1。因此,由于一些奇怪的原因,我的功能中的后遗症没有被调用。