[英]CakePHP: newly saved record invisible to find()
我的控制器需要通过遍历接收到的请求数据并创建相应的记录来创建/保存一个或多个记录。 您可能想知道:为什么不只使用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');
您的查询有问题。
$parent_question['Question']['perm_id']
是错误的。 CakePHP不会做任何会使您的记录无法找到的事情。
只需调试变量以确保您使用正确的ID构建正确的查询,就可以了。
(如果没有看到构建ID的实际方法,就无法提供帮助)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.