0

私は grails を使用してブログで作業しています。つまり、Post属性として定義した という名前のドメイン クラスを作成しましString content, Date date, String titleた。投稿には複数のコメントを含めることができる"Comment" with: String author, File avatar, String content, Date commentDate;ため、ドメイン クラスも作成して、1 対多の関係を宣言しました。次static hasmany = [statements: Comment]のように: Post ドメイン クラスで。次に、blog.gsp で、すべてのコメントを含む単一の投稿を表示したいので< g:each >、投稿を含むタグを変数として使用しようとしています。アイデアは、このタグがこの単一のコメント リストを反復処理することです。すべての投稿ではなく、投稿します。これを達成する方法?.

4

2 に答える 2

1

混乱を避けるために、「標準」の Grails 変数名を使用します。

コントローラーがオブジェクトを送り返す場合、次のPostように反復できます。

//PostController.groovy
def blog() {
    def postInstance = Post.read(params.id)
    [postInstance: postInstance]
}

//blog.gsp
${postInstance.title} //just to make sure your postInstance is correctly populated
<g:each in="${postInstance?.statements}" var="commentInstance">
    ${commentInstance.content}
<g:each>

これは、ステートメントが 1 つであろうと 1000 個であろうと機能するはずです。

また、それがあることを確認してください

//Post.groovy
static hasMany = [statements: Comment]

Commentに所属させたいと思うかもしれません。Post

//Comment.groovy
static belongsTo = [post : Post]

これにより、双方向の関係になります。

于 2013-05-29T06:56:59.140 に答える