重複チェックのバリデート3

重複チェックのバリデートを若干使いやすくしました。条件をつけてメールアドレスの重複チェック等に使えます。CakePHP1.2.x.x_24.01.2008で確認してます。

//重複チェックのバリデート
function checkDuplicate($data, $addconds = array())
{
$cond = array(key($data) => '= '.current($data));
if(($id = $this->getID()) !== false){
$cond[$this->primaryKey] = '!= '.$id;
}
foreach($addconds as $key => $value){
$cond[$key] = $value;
}
return ($this->findCount($cond, -1) === 0);
}

使い方はバリデーションの中で
‘rule’ => array(‘checkDuplicate’, array(‘status’ => ‘= active’))
例えばこんな感じに連想配列を入れてやると、statusがactiveなメールアドレスの中で重複チェックができます。findの連想配列に渡しているので付け足せる条件は連想配列のみです。

直したところ

  • 条件を付け足せるようにしたこと
  • findCountのrecursive = -1にしたことでモデル名が要らなくなったこと
  • primaryKeyをid決め打ちじゃなくしたこと

實松アウトプット: バリデーションでメールアドレスの重複登録チェック
http://sane.justblog.jp/blog/2008/02/post-9f5d.html

實松アウトプット: バリデーションでメールアドレスの重複登録チェック2
http://sane.justblog.jp/blog/2008/02/2-810c.html

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中