在我继续保存记录之前,我试图找出数据库中是否已存在类似的记录。我用谷歌搜索,发现看起来它应该工作,但不幸的是没有。我是cakephp的新手,可以找出正确的查询。
$this->Tape->recursive = -1;
$tapeexists = $this->Tape->find('all', array('condition'=>array('Tape.name LIKE'=>'blondie%')));
$this->set('output', $tapeexists);
如果我在视图中print_r()结果,我可以看到它只是去了并获得该表中的所有结果,其中任何一个都没有任何名称,甚至像'blondie'一样远!
答案 0 :(得分:14)
我认为你在查找时只是拼错了conditions
:
$tapeexists = $this->Tape->find('all', array('conditions'=>array('Tape.name LIKE'=>'blondie%')));
这应该会给你预期的结果。
为了您不允许重复的特定目标,我建议您在Tape
模型上创建验证规则。有一个特定的内置规则旨在避免重复,因此您可能最好使用它。查看有关数据验证的更多信息here - 查看isUnique
核心验证规则。