0

多対多の関係を維持するために、Spring セキュリティ プラグインのこの groovy クラスのテンプレートに従っています。

方法の 1 つは次のようなものです。

static UserEvent get(long userId, long eventId) {
    UserEvent.find 'from UserRole where user.id=:userId and event.id=:eventId',
            [userId: userId, eventId: eventId]
}

注: このクラスには ID プロパティがありません。

質問

GSP からこのメソッドを使用して、何かを返すかどうかを確認するにはどうすればよいですか?

これを試しましたが、うまくいかないようです。常に同じ結果が得られます。

<g:if test="${UserEvent.get(currentUserId as long, eventInstance.id as long) != null} ">
   <span>you attended this event</span>
</g:if>

これは、UserEvent クラスにエントリがある場合とない場合の両方に当てはまるようです。

4

2 に答える 2

4

コントローラーで作業を行い、データをビューに渡します。ビューは、データの表示のみに関係する必要があり、データの計算や、特にデータベース クエリの実行には関係しません。これはPHPではありません:)

コントローラー アクションにコードを追加します。

def yourAction() {
   // existing code

   UserEvent event = UserEvent.get(currentUserId as long, eventInstance.id as long)

   [foo: bar, ..., eventExists: event != null]
}

そして、それを GSP で使用します。

<g:if test="${eventExists}">
   <span>you attended this event</span>
</g:if>
于 2013-02-28T15:28:47.153 に答える
0

null テストをなくして、グルーヴィーな真実だけに頼ればうまくいくでしょうか?

<g:if test="${UserEvent.get(currentUserId as long, eventInstance.id as long)}">
于 2013-02-28T13:02:25.050 に答える