2012-08-16 114 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