私はgrailsが初めてで、私のクラスのプロパティのうちの1つの適切な制約を書く方法に問題があります。入力にスペース( '')が含まれているかどうかを確認したい。ここに私のコードです。プロパティがgroovyのスペースを制限するかどうかをチェックする方法?
static constraints = {
username nullable: false, blank: false, minSize: 6, matches: /[A-za-z0-9_]{6,}/, validator: {
Account.countByUsername(it) < 1
}
私を助けてください。
ありがとうございます!
username validator: { val -> if (val.contains(' ')) return 'value.hasASpace' }
編集:
ありがとうございます。上記のコードにこれを追加してしまえば、Account.countByUsername(it)<1に関連するエラーメッセージが表示されます。Account.countByUsernameを変更せずに特定のバリデーターを追加する方法はありますか(it)<1? – chemilleX3
ユーザ名の場合、カウントクエリ –
@Rではなく、その制約をusername(unique:true)として定義することをお勧めします。ヴァルベーナは正しいです。 countByUsernameバリデーターは、更新があったときに検証を失敗させます。ユニークを使用して:真は行く方法です。 2つの条件を検証するためにカスタムバリデーターが必要だった場合、バリデーターは両方の条件が真であるかどうかをチェックするだけです。 – erturne