CakePHP:新保存的记录对find()不可见

时间:2013-05-02 01:09:08

标签: php cakephp caching cakephp-2.0 cakephp-2.1

我的控制器需要通过循环接收的请求数据并创建相应的记录来创建/保存一个或多个记录。您可能想知道:为什么不使用saveAll()并立即保存所有内容。简短的回答是某些记录需要引用在同一循环中创建的其他记录的ID(并且这些ID尚不存在)。

我的循环成功创建了第一条记录,当我使用find()时,循环的后续迭代无法“看到”新创建的记录。如果我回显返回的数组,结果就在那里,但是新创建的数据丢失了。 为什么? CakePHP的魔力是否会因为某种缓存而使新记录无法使用?

这是我的代码,不包含最新的记录:

$newest_parent_question = $this->Question->find('first', array(
                                                            'conditions'=>array('Question.perm_id'=>$parent_question['Question']['perm_id']),
                                                            'order' =>  array('Question.created DESC')
                                                            ) 
                                                );

但是,新记录IS随之返回:

$newest_parent_question = $this->Question->find('all');

1 个答案:

答案 0 :(得分:1)

您的查询有问题。

可能$parent_question['Question']['perm_id']错了。 CakePHP没有做任何事情会让你的记录无法找到。

只需调试变量,确保使用正确的ID构建正确的查询,然后就可以了。

(没有看到你构建id的实际方式,除此之外不可能提供帮助)