我正在使用带有MySQL的CakePHP 1.3并使用以下代码进行紧密循环:
if ($this->Model->find('count', array('conditions' => array('Model.name' => 'name'))) == 0)
{
$this->Model->create();
$this->Model->save(array('Model' => array('name' => 'name')));
}
$data = $this->Model->find('first', array('conditions' => array('Model.name' => 'name')));
然而,有时$ data出来是NULL;换句话说,即使我创建/保存新记录(如果它不存在),该记录也不存在。
在创建记录和可用记录之间是否有一些延迟?
非常感谢任何帮助。
编辑1 我应该指出,我确保在继续之前对Model-> save()的调用成功。
if (!$this->Model->save(array('Model' => array('name' => 'name'))))
$this->error('Save failed');
谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以随时重写代码:
if ($this->Model->find('count', array('conditions' => array('Model.name' => 'name'))) == 0)
{
$this->Model->create();
if ($this->Model->save(array('Model' => array('name' => 'name'))))
{
$data = $this->Model->find('first', array('conditions' => array('Model.name' => 'name')));
/* or better: */
$data = $this->Model->findByName('name');
/* or rather use: */
$data = $this->Model->find('first', array('conditions' => array('Model.id' => $this->Model->id)));
/* or even better, try this: */
$data = $this->Model->read();
}
}
答案 2 :(得分:0)
也许你有一些阻止保存的验证规则,试试这个
if (!$this->Model->save(array('Model' => array('name' => 'name')))) {
pr($this->Model->validationErrors);
}
如果pr()显示某些内容,那么您将找到问题