2012-08-16 35 views
33

Mi chiedo, c'è una funzione che mi consente di verificare immediatamente se esiste un record nel database?Cakephp verifica se il record esiste

In questo momento sto usando il seguente pezzo di codice per rilevare se esiste un record, ma posso immaginare che ci sia un modo più semplice/migliore.

$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 
} 

C'è qualcosa di simile:

$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 
} 

Va bene, sì, c'è. Si chiama exists(), ma ho bisogno dello stesso, ma con parametri, così posso aggiungere le mie condizioni al controllo.

Ho cercato su google, ma non riesco a trovare alcun argomento a riguardo. Beh, molto su php e mysql, ma non su cakephp. Ho bisogno di una risposta specifica per la torta.

Grazie per il vostro tempo :)

risposta

61

ciò che si sta cercando è Model::hasAny

Usage:

$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

La ringrazio molto, non si accorse di questa funzione era intorno :) – Jelmer