從我的用戶域模型中排序的GORM數據庫對象列表中,我想要命令它們爲asc(即在視圖中以相反的順序)。例如,要從數據庫中獲取用戶的最新書籍,但要以最後一本書最後一本書的相反順序將它們插入到Dom中。如何在Grails中以相反順序迭代對象列表?
如何在我的GSP中執行反向操作?
控制器:
def books = user.books
GSP:
<g:each in="${books}" var="book">${book}</g:each>
從我的用戶域模型中排序的GORM數據庫對象列表中,我想要命令它們爲asc(即在視圖中以相反的順序)。例如,要從數據庫中獲取用戶的最新書籍,但要以最後一本書最後一本書的相反順序將它們插入到Dom中。如何在Grails中以相反順序迭代對象列表?
如何在我的GSP中執行反向操作?
控制器:
def books = user.books
GSP:
<g:each in="${books}" var="book">${book}</g:each>
<g:each in="${books.reverse()}" var="book">${book}</g:each>
編輯
了忘乎所以:)。我寧可建議:
def books = user.books?.reverse()
在控制器中。
(關注的分離,圖不應有操縱model
的邏輯)
UPDATE:
萬一books
在User
是不排序,則需要顯式排序。
def newestBooks = user.books?.asList().sort{it.publishDate}
反向排序使用
def newestBooks = user.books?.asList().sort{-it.publishDate}
您可以使用默認的排序爲關係集合描述here。所以,如果你像這樣定義:
class User {
…
static hasMany = [books: Book]
static mapping = {
books sort: 'publishDate', order: 'asc'
}
}
收集將在數據庫級別
我不同意進行排序,該模型意味着沒有秩序。表格沒有排序。在我看來,對象顯示順序是視圖邏輯的一部分。 – 2013-05-08 01:05:38
如果我有'def newestBooks = user.books?.reverse()'設置爲模型? – dmahapatro 2013-05-08 01:10:32
這不起作用,因爲域類中沒有順序。 – confile 2013-05-08 01:28:15