gpt4 book ai didi

exception - grails异常:标记[paginate]缺少必需的属性[total]

转载 作者:行者123 更新时间:2023-12-02 15:31:35 25 4
gpt4 key购买 nike

我的 Controller 中有以下方法,用于列出Patient实体:

def list(Integer max) {
params.max = Math.min(max ?: 10, 100)


def roles = springSecurityService.getPrincipal().getAuthorities()
if(roles == 'ROLE_USER')
{
[patientInstanceList: Patient.findAllBySecUser(springSecurityService.getCurrentUser()), patientInstanceTotal: Patient.count()]
}
else if(roles == 'ROLE_ADMIN' || roles == 'ROLE_MANAGER')
{
[patientInstanceList: Patient.list(params), patientInstanceTotal: Patient.count()]
}
}

如果我执行此方法,我会有异常(exception)
Tag [paginate] is missing required attribute [total]

但是,如果我使用以下
def list(Integer max) {
params.max = Math.min(max ?: 10, 100)
[patientInstanceList: Patient.list(params), patientInstanceTotal: Patient.count()]
}
}

一切正常。我看到了所有创建的Patient实例。我只希望基于登录用户的角色,可以看到所有创建的实体的一部分。为什么会引发此异常?

我在这里找到了 Grails pagination tag error类似的东西,但是没有给出好的答案

最佳答案

我不确定您是否可以省略if语句中的返回值。另一个细节是,您正在ROLE_USER中过滤域记录,但独立于此过滤器来计算总数。

您可以尝试以下方法:

def list(Integer max) {
params.max = Math.min(max ?: 10, 100)

def roles = springSecurityService.getPrincipal().getAuthorities()

def model

//I think roles is a list so your equals will not work...
def admin = roles.find { it.authority == 'ROLE_ADMIN' || it.authority == 'ROLE_MANAGER' }
if(admin) {
model = [patientInstanceList: Patient.list(params), patientInstanceTotal: Patient.count()]
} else {
//createCriteria().list(params) will paginate...
def patientInstanceList = Patient.createCriteria().list(params) {
eq('secUser', springSecurityService.currentUser)
}
//totalCount will trigger a query without the limit, but applying your filter
model = [patientInstanceTotal: patientInstanceList.totalCount, patientInstanceList: patientInstanceList]
}

//and finally we return the model
//return model
//just to show that the return is optional

model

}

关于exception - grails异常:标记[paginate]缺少必需的属性[total],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18537352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com