7

在继续保存记录之前,我试图找出数据库中是否已经存在类似的记录。我用谷歌搜索并发现它看起来应该可以工作,但不幸的是没有。我是 cakephp 新手,无法找出正确的查询。

$this->Tape->recursive = -1;
$tapeexists = $this->Tape->find('all', array('condition'=>array('Tape.name LIKE'=>'blondie%')));
$this->set('output', $tapeexists);

如果我 print_r() 视图中的结果,我可以看到它只是运行并获取该表中的所有结果,其中没有一个名称甚至远程像“金发女郎”!

4

1 回答 1

17

我认为您conditions在查找时只是拼写错误:

$tapeexists = $this->Tape->find('all', array('conditions'=>array('Tape.name LIKE'=>'blondie%')));

这应该会给你预期的结果。

对于不允许重复的特定目标,我建议在Tape模型上创建一个验证规则。有一个特定的内置规则旨在避免重复,因此您最好使用它。在此处查看有关数据验证的更多信息- 查看isUnique核心验证规则。

于 2013-03-07T21:52:47.137 回答