人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CakePHPで初歩的なあたりでハマっています
Validateがうまくいかない
単純なミスだとは思うのですがうまくいきません
cakephpのバージョンは1.2
PHPのバージョンは5.25です

コントローラーのクラス名
UsersController
コントローラーのファイル名
users_controller.php

コントローラー内
class UsersController extends AppController{
function regist(){

$data = array('email'=> $this->params['form']['email'],
'password' => $this->params['form']['password']);

debug($data) //その1

if(!$this->User->validates($data)){
$this->flash("入力NG","/users/");
return;
}

$this->User->save($data,false);
$this->flash("入力OK","/users/");
return;

}
}

モデルのクラス名
User
モデルのファイル名
user.php

モデル内
class User extends AppModel{
function beforeValidate() {
debug($this->data); //その2
}

var $validate = array(
'email' => VALID_NOT_EMPTY
);
}

emailが未入力でも入力OKとなってしまいます。
出力その1では配列に値が入っていましたが、その2では「Array()」と出るだけでした。saveはうまくいきます。


●質問者: ticaramoci
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CakePHP Class Flash password PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● heilig_zwei
●100ポイント ベストアンサー

どちらかというとオブジェクト指向言語の基礎の話になりますが、

model側に引数を指定する必要があります。

function beforeValidate($results) {

debug($results); //その2

return $results;

}

でどうすか?

めんどいのでデバッグはしてません。

◎質問者からの返答

上記のコードをそのまま記述すると入力値が出力されました。

デバッグ方法が間違ってたということですね

ただ問題はvalidateの処理が行われないことの方で

emailが未入力でも「入力OK」となってしまいます

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ