2012-08-16 38 views
33

Me pregunto, ¿hay alguna función que me permita verificar al instante si existe un registro en la base de datos?Cakephp comprobar si existe registro

En este momento estoy usando la siguiente pieza de código para detectar si existe un registro, pero puedo imaginar que hay una manera más simple/mejor.

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

¿Existe algo así como:

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

Está bien, sí hay. Se llama exists(), pero necesito lo mismo, pero con parámetros, de modo que puedo agregar mis propias condiciones al cheque.

He buscado en Google, pero no encuentro ningún tema al respecto. Bueno, mucho sobre php y mysql, pero no sobre CakePHP. Necesito una respuesta específica para la torta.

Gracias por su tiempo :)

Respuesta

61

Lo que estamos buscando es Model::hasAny

Uso:

$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

Muchas gracias, no se dio cuenta de esta función fue de alrededor :) – Jelmer