0

私はこれを持っています:

class Usuario {

        String username
        String password
        String passwordDos
        String nombre
        String apellidoPaterno
        String apellidoMaterno
        Date fechaDeNacimiento
        String sexo
        String correo

    static constraints = {
        username blank: false, unique: true, validator: { val, obj ->
                                            obj.password != val
                                            return ['usuario.userPassError'] 
                                        }
        password blank: false, validator: { val, obj ->
                                                    obj.passwordDos == val
                                                        return ['usuario.passDiferentes']    
                                                }
                passwordDos blank: false
                nombre   blank: false, maxSize: 64
                apellidoPaterno blank: false, maxSize: 64
                apellidoMaterno blank: true, maxSize: 64
                sexo inList: ["Femenino", "Masculino"]
                correo   blank: false, maxSize: 128, email:true       
    }
}

エラーメッセージに戻りたいのですが、間違っているわけではありません。

4

1 に答える 1

2

バリデーターのクロージャーには、ある種の条件付きリターンがあると思います。現状では、常に失敗し、エラー コードが返されるようです。

次のようなカスタム バリデータを作成してみてください。

// username validator
validator: { val, obj ->
    obj.password == val ? 'userPassError' : true
}

// password validator
validator: { val, obj ->
    obj.passwordDos != val ? 'passDiferentes' : true
}

返されるさまざまなメッセージ コードにも注意してください。

次に、適切なgrails-app/i18n/messages*ファイルに次のものが含まれていることを確認します。

usuario.username.userPassError = Username and password cannot be the same
usuario.password.passDiferentes = Password does not match password confirmation
于 2012-01-13T21:45:30.470 に答える