【问题标题】:CakePHP: newly saved record invisible to find()CakePHP:新保存的记录对 find() 不可见
【发布时间】:2013-05-02 01:09:07
【问题描述】:

我的控制器需要通过循环接收到的请求数据并创建相应的记录来创建/保存一条或多条记录。您可能想知道:为什么不直接使用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')
                                                            ) 
                                                );

但是,新记录是这样返回的:

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

【问题讨论】:

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


    【解决方案1】:

    您的查询有问题。

    $parent_question['Question']['perm_id'] 可能是错误的。 CakePHP 不会做任何事情来使您的记录无法找到。

    只需调试您的变量以确保您使用正确的 id 构建正确的查询,您就可以开始了。

    (没有看到您构建 id 的实际方式,除此之外无法提供帮助)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多