from('User u')->where('u.name = ?',$username); $result = $c->fetchOne(); if ($result){ // DB から認証に必要なパラメータの抽出 $result_password = $result['password']; // パスワード認証チェック if ($result_password == $encrypted_password){ // パスワードが通り、かつ、ユーザが有効な場合のみvalidate を通す return $values; } else { // パスワードが異なる場合はinvalid を返す throw new sfValidatorError($this, 'invalid', array()); } } else { // ユーザが存在しない場合はinvalid を返す throw new sfValidatorError($this, 'invalid', array()); } } // postValidator 以前のvalidator でエラーが発生した場合はスルーする return $values; } }