Home > CakePHP | Lang | PHP > [cakephp1.2]validate使用時の注意。[validate]

[cakephp1.2]validate使用時の注意。[validate]

cakephp1.1の時のように、

$this->yourmodel->validates($this->data);

とすると、cakephp1.2では

(Model::validates) Parameter usage is deprecated, set the $data property instead
Warning (512): [CORE/cake/libs/model/model.php, line 1647]

とWarningを吐きます。1.2では下記のようにしましょう。

if ($this->YourModel->create($this->data) && $this->YourModel->validates()) {
    // validation ok
} else {
    // validation not ok
}

また、新規登録時のvalidateルールを下記の様に設定するとする。

	var $validate = array(
				"name"=>array(
					array("rule"=>VALID_NOT_EMPTY)
				),
				"kana"=>array(
					array("rule"=>VALID_NOT_EMPTY)
				)
			)

でも、データ更新時にはvaidateルールから
「kana」のvalidateルールを除きたい場合は、

unset($this->YourModel->validate['kana']);

と書くよ。

Comments:1

add to hatena hatena.comment (2) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 2

ちば 08-08-13 (水) 17:33

通りすがりCake Bakerです。
$this->MODEL->validates($this->data)してもなんだが1.2では素通りで常にtrue返してきて困っていたのですが、
この記事のおかげで助かりました。

ありがとうございました。(コメントするところ間違えました)

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://ore.saizensen.net/archives/70/trackback
Listed below are links to weblogs that reference
[cakephp1.2]validate使用時の注意。[validate] from おれ最前線ねっと
trackback from 自転車で通勤しましょ♪ブログ 09-02-04 (水) 1:09

CakePHP1.2 Model::validates($data)の罠

CakePHP1.2の最新版である、1.2.1.8004にて、Model::validatesをオーバーライドして、モデル毎に独自のバリデーションを持たせていたのだが、いざ実験を行ってみると、全くバリデーションが効い…

Home > CakePHP | Lang | PHP > [cakephp1.2]validate使用時の注意。[validate]

Search
Feeds
Meta

Return to page top