37

データベースにレコードが存在するかどうかを即座に確認できる機能はありますか?

現在、次のコードを使用してレコードが存在するかどうかを検出していますが、もっと簡単で優れた方法があると想像できます。

$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()ですが、同じものが必要ですが、パラメータが必要なので、独自の条件をチェックに追加できます。

Googleで検索しましたが、これに関するトピックが見つかりません。まあ、php と mysql についてはたくさんありますが、cakephp についてではありません。ケーキ固有の回答が必要です。

御時間ありがとうございます :)

4

1 に答える 1

68

あなたが探しているのは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
}
于 2012-08-16T23:36:06.507 に答える