cakephp2.doc_043
最終投稿日:2019年11月20日
【ビヘイビアファイル設置】
■ ビヘイビア設置ディレクトリ
app/Model/Behavior
カナをチェックするバリデーション『CustomValidationBehavior.php』を作成する場合
<?php
//ビヘイビアはかならず ModelBehavior クラスを継承しないといけない
class CustomValidationBehavior extends ModelBehavior {
/**
* 文字列が全角カタカナのみかどうかの判定。
*
* @param object $model モデルオブジェクト
* @param array $data バリデート対象のデータ配列
* @return boolean 全角カタカナのみであればTRUE。違えばFALSE。
*/
function isKatakana(Model $model, $data) {
$value = current($data);
if (!preg_match("/^[ァ-ヶー]+$/u", $value)) {
return false;
}
return true;
}
}
※$model->data[$model->name][カラム名] で任意のカラム値を参照できる
【モデル側】
//ビヘイビアを宣言
public $actsAs = array("CustomValidation");
~省略~
"iskana" => array("rule"=>array("isKatakana")
,"message"=>"フリガナは全角カタカナで入力してください"),
※バリデート内に上記の様にビヘイビアで作成した「isKatakana」を指定する
注意)
実際のビヘイビアの名前は「CustomValidationBehavior.php」、
クラス名は「CustomValidationBehavior」に対して、モデル側での宣言は「CustomValidation」となる。
つまり、ビヘイビアのファイル名の命名規則として「任意の名前」+「Behavior.php」となる。
【ビヘイビアファイル設置】
■ ビヘイビア設置ディレクトリ
app/Model/Behavior
カナをチェックするバリデーション『CustomValidationBehavior.php』を作成する場合
<?php
//独自のバリデーションメソッドを記述するビヘイビアクラス。
//これは不要っぽい
//App::uses('ModelBehavior', 'Model');
class CustomValidationBehavior extends ModelBehavior {
/**
* 文字列が全角カタカナのみかどうかの判定。
*
* @param object $model モデルオブジェクト
* @param array $data バリデート対象のデータ配列
* @return boolean 全角カタカナのみであればTRUE。違えばFALSE。
*/
function isKatakana(&$model, $data) {
$value = current($data);
if (!preg_match("/^[ァ-ヶー]+$/u", $value)) {
return false;
}
return true;
}
}
?>
※ビヘイビアはかならず ModelBehavior クラスを継承しないといけない
※$model->data[$model->name][カラム名] で任意のカラム値を参照できる
【モデル側】
//ビヘイビアを宣言
var $actsAs = array("CustomValidation");
....
"iskana" => array("rule"=>array("isKatakana")
,"message"=>"フリガナは全角カタカナで入力してください"),
....
バリデート内に上記の様に(isKatakana)指定する