2

inListGrails コントローラー内で制約を宣言する方法を教えてもらえますか?

このクラスがあるとしましょう:

class A {
    List hello
}

コントローラー内の fromのinList制約を追加するにはどうすればよいですか?hello List

4

2 に答える 2

2

Listリストのリストに対して検証された値を持つプロパティを持つ制約を定義しますか?奇妙に聞こえます。しかし、あなたはそれを行うことができます。このクラスの場合:

class A {
    List hello
    static constraint = {
        hello inList:[['abc','def','ghi'],[1,2,3],['a','b']]
    }
}

これはコントローラーで実行できます。

def instance1 = new A(hello:['abc','def','ghi']).save()    //valid
def instance2 = new A(hello:[1,2,3]).save()                //valid
def instance3 = new A(hello:['a','b']).save()              //valid
def instance4 = new A(hello:['a','b','c']).save()    //invalid
def instance5 = new A(hello:[1,2]).save()            //invalid

Aただし、インスタンスが従来のデータベースに永続化されているドメインクラスの場合、プロパティhelloは削除されるため、を使用して定義する必要があります。

static hasMany = [hello: SomeClass]

代わりは。

于 2013-01-11T06:53:59.753 に答える
0

データがリストにあるかどうかをチェックするカスタムバリデーターをフィールドに書き込むことができます。リスト内チェックを手動で実装する必要があります。ここに公式ドキュメントがあります。あなたが好きになるのを助けることができるいくつかのstackoverflowエントリがあります

Grails:フィールドの以前の値に基づくカスタムバリデーター

于 2013-01-11T07:41:02.267 に答える