我正面临 CakePHP 2.1 的一个奇怪行为:
我有一个方法,$this->Time->getTime();
它总是记录一个动作,然后返回 true。从浏览器调用时,它按预期工作:记录操作,然后返回 true。
我创建了一个 shell,只有在返回 true时才会TimeShell
在其中记录另一个操作。现在,奇怪的是记录了第二个操作,因此该方法返回了 true,但是该方法中的操作(显然必须运行,因为它传递了它并返回了 true)没有被记录。$this->Time->getTime();
当从 shell 调用方法时,为什么不记录第一个操作?(如果有帮助,shell 将通过我服务器上的 cron 作业运行)
编辑
经过进一步测试,我发现如果我不记录第二个动作(shell 中的那个),那么第一个动作(in $this->Time->getTime();
)会被正确记录。但我不明白为什么 Cake 只记录应该记录的最后一个动作。
此外,似乎只有 DatabaseLogger 以这种方式运行,FileLog 记录这两个操作。很奇怪。