web-dev-qa-db-fra.com

Cakephp vérifie si l'enregistrement existe

Je me demande, y a-t-il une fonction qui me permet de vérifier instantanément si un enregistrement dans la base de données existe?

En ce moment, j'utilise le morceau de code suivant pour détecter si un enregistrement existe, mais je peux imaginer qu'il existe un moyen plus simple/meilleur.

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

Y a-t-il quelque chose comme:

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

D'accord, oui. Cela s'appelle exists(), mais j'ai besoin de la même chose, mais avec des paramètres, donc je peux ajouter mes propres conditions à la vérification.

J'ai recherché google, mais je ne trouve aucun sujet à ce sujet. Eh bien, beaucoup de choses sur php et mysql, mais pas sur cakephp. J'ai besoin d'une réponse spécifique au gâteau.

Merci pour votre temps :)

36
Jelmer

Ce que vous recherchez est 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
}
67
tigrang