[CakePHP]よくある同一チェックを導入

よくある同一内容をチェックして、異なっていたら「異なりま~す」みたいなエラーメッセージをCakePHPで出そうとして、独自のバリデーションルールまでは作れたけど、肝心の相手の値が取れない。
あきらめて暫くコントローラで対応していたが、やっと方法が解ったのでメモφ(..)しておく。ちなみに1.2.7でしか試していません。

app/models/user.phpの例です。

<?php
class User extends AppModel {

	var $name = 'User';
	var $validate = array(
		'password_new' => array(
			'notEmpty' => array(
				'rule' => 'notEmpty',
				'message' => 'パスワードを入力してください。'
			)
		),
		'password_chk' => array(
			'notEmpty' => array(
				'rule' => 'notEmpty',
				'message' => 'パスワード(再入力)を入力してください。',
				'last' => true
			),
			'sameCheck' => array(
				'rule' => array('sameCheck', 'password_new'),
				'message' => 'パスワード(再入力)がパスワードと異なります。'
			)
		)
	);

	//### 同一チェック ###
	function sameCheck($data, $target) {
		return strcmp(array_shift($data), $this->data[$this->name][$target]) == 0;
	}

}
?>


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">