2013-05-02 46 views
0

我的控制器需要创建/保存一个或多个记录,方法是循环接收到的请求数据并创建相应的记录。您可能想知道:为什么不使用saveAll()并一次保存它们。简短的回答是,某些记录需要引用在同一个循环中创建的记录的其他记录(并且这些ID尚不存在)。CakePHP:新保存的记录不可见查找()

我的循环成功创建第一条记录,当我使用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') 
                  ) 
               ); 

然而,新的记录与此返回:

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

回答

1

有一些问题与您的查询。可能$parent_question['Question']['perm_id']是错误的。没有任何CakePHP会这样做,这会使您的记录无法找到。

只需调试您的变量,以确保您使用正确的编号构建正确的查询,并且您将很好。

(没有看到你建立ID的实际方式,这是不可能的帮助以外)

+0

你是对的。谢谢! – emersonthis 2013-05-02 02:59:45

+0

没问题:) – Dave 2013-05-02 03:39:22