こんにちは、私のアプリケーションモデルの1つのrules()メソッドに問題があります。
これがrules()です:
public function rules()
{
$newRules = array(
array('password_verification', 'required'),
array('password_verification', 'length', 'min'=>6, 'max'=>32),
array('password', 'compare', 'compareAttribute'=>'password_verification'),
array('username, email', 'length', 'min'=>3,'max'=>255),
array('password', 'length','min'=>6, 'max'=>32),
array('username, email', 'unique'),
array('email', 'email'),
array('valid_until_formated','compare',
'compareAttribute'=>'valid_from_formated','operator'=>'>'),
array('id, type,username, password, password_verification, email, valid_from, valid_until, valid_until_formated, valid_from_formated, added_on, created_by','safe'),
);
}
(コードの形式については申し訳ありません)。
そしてここに問題があります:
「valid_until_formated」が「valid_from_formated」より大きいかどうかをテストしたいと思います。
間違った値(valid_fromより大きいvali_until)でフォームを送信すると、エラーメッセージが表示され、firebugで表示されますが、値はデータベースに挿入されます。
しかし、たとえば、すでに使用されているユーザー名または6文字未満のパスワードを使用しようとすると、エラーが発生し、データベースに何も作成されませんか?
このルールが機能しない理由を誰かが知っていますか(エラーメッセージが表示された場合でも)?(これはvalid_until_formatedの形式です。例: "20121118")
私を読んでくれてありがとう、そして私のおおよその英語をお詫びします。
良い一日を過ごしてください :)
ミカエル