「isUnique」バリデーション
「isUnique」は、特定カラムの一意性を検証してくれるメソッドです。
2.5.6からは、複数フィールドにまたがる一意性検証にも対応するようになったようです。
使用方法
public $validate = array( // 単一のフィールドに対する一意性を検証 'culumn_a' => array( 'rule' => 'isUnique', 'message' => 'culumn_a has already been taken.' ), // 複数のフィールドに対する一意性を検証 (AND) 'culumn_a' => array( 'rule' => array( 'isUnique', array( 'culumn_a', 'culumn_b'), false), 'message' => 'culumn_a & culumn_b combination has already been used.' ), // 複数のフィールドに対する一意性を検証 (OR) 'culumn_a' => array( 'rule' => array( 'isUnique', array( 'culumn_a', 'culumn_b'), true), 'message' => 'culumn_a & culumn_b combination has already been used.' ), );
複数カラムに対する一意性検証を行う場合、第3引数で検証方法を設定することができます。
falseの場合は、複数カラムのコンビネーションで、trueの場合は、それぞれのカラムに対してチェックを行ってくれます。
// falseの場合 SELECT COUNT(*) AS `count` FROM `テーブル` AS `[TABLE]` WHERE `[TABLE]`.`culumn_a` = 'a' AND `[TABLE]`.`culumn_b` = 'a' // trueの場合 SELECT COUNT(*) AS `count` FROM `テーブル` AS `[TABLE]` WHERE ((`[TABLE]`.`culumn_a` = 'a') OR (`[TABLE]`.`culumn_b` = 'a'))
Models > Data Validation
関連記事
-
テキストから指定文字をハイライト「highlight」・配列をリストに展開「toList」・二重改行を<p>タグへ変換「autoParagraph」
Textヘルパーの「highlight」は、テキスト内の指定文字をハイライトしてくれます。検索結果の表示などに使用できそうです。デモ highlight テキスト内の指定文字ハイライト表示しま
-
テキストから自動的にリンクを付与「autoLink」と除去「stripLinks」
Textヘルパーには、テキスト処理に関する便利な機能があります。ユーザによる投稿などを表示する際に、URLが貼り付けられている場合に自動的にリンクを付けてくれるautoLinkや、逆に、リンクが貼られ
-
ユーザエージェントを取得
Windows XPサポート終了に伴い、移行を促すために有効な手段としてユーザのブラウザやOSの情報を取得して行動を促すというのがあると思います。 グローバル関数「env」でuser-agent
-
シンプルに設置できる数字Captcha「MathCaptcha」
スパム防止などで利用されているCaptchaですが、数字版で使えるものがないか探してみました。この「MathCapthca」は非常にシンプルに設置できます。 ダウンロードはこちらから。 MathC
-
Cakeログ 出力フォーマット カスタマイズ
Cakeログの出力はFileLogクラスのwriteメソッドで行われます。今回は、出力のフォーマットの変更をいくつか試してみました。 既存のライブラリを上書き(オーバーライド)する方法 wri
-
複数データベースの追加と切替
CakePHPで複数のデータベースに切替を行うということがあると思います。(個人的にはあまりない) 今回、CakePHPからWordpressのデータベースへの接続を行う機会があったので設定を試してみ
-
テキストから指定文字数で抜粋「excerpt」「truncate」「tail」
Textヘルパーには、コントローラーから受けとったテキストデータを切り取り表示してくれるヘルパーが用意されています。先頭もしくは末尾から指定文字数を切り取ってくれる「truncate」「tail」、指
-
Captchaプラグイン「Captcha Component & Helper」
Captchaプラグインを実装してみました。 ダウンロードはこちら 解凍して、このようになるようにそのままappディレクトリ下に置いてください。 app/Controller/Compone