2012-08-16 179 views
33

我想知道,是否有一个函数,允许我立即检查数据库中的记录是否存在?Cakephp检查是否存在记录

现在我正在使用下面的一段代码来检测记录是否存在,但我可以想象有一个更简单/更好的方法。

$conditions = array(
    'conditions' => array(
     'User.id' => $this->Session->read('User.id'), 
     'User.activation_key' => $this->Session->read('User.key') 
    ) 
); 
$result = $this->User->find('first', $conditions); 
if (isset($result['User'])){ 
    //do something 
} 

有什么样:

$conditions = array(
    'conditions' => array(
     'User.id' => $this->Session->read('User.id'), 
     'User.security_key' => $this->Session->read('User.key') 
    ) 
); 
if ($this->User->exists($conditions)){ 
    //do something 
} 

好了,是的,有。它被称为exists(),但我需要相同的参数,所以我可以将自己的条件添加到检查中。

我已经搜索谷歌,但我找不到任何关于此的话题。那么,关于PHP和MySQL很多,但不是关于cakephp。我需要一个蛋糕的具体答案。

感谢您的时间:)

回答

61

你所寻找的是Model::hasAny

用法:

$conditions = array(
    'User.id' => $this->Session->read('User.id'), 
    'User.security_key' => $this->Session->read('User.key') 
); 
if ($this->User->hasAny($conditions)){ 
    //do something 
} 
+4

非常感谢你,没有注意到这个功能是围绕:) – Jelmer 2012-08-16 23:53:29