gpt4 book ai didi

grails - Groovy findAll和每个标签问题

转载 作者:行者123 更新时间:2023-12-02 14:56:21 26 4
gpt4 key购买 nike

我有以下域类:

class User = {
String username
...
Company company
}

class Company {
String name
...
}

也就是说,用户与公司之间存在n:1的关系。
这些类是这样,我无法更改它们。

在show.gsp上,我想要了解公司的详细信息以及指向的链接
属于该公司的用户。

我知道我可以通过编写自己的标签来实现此目的,但是我确信可以使用 每个标签或 findAll 标签来实现。

如果我执行以下操作
<g:each in="${User.findAll('from User order by username')}" var="userInstance">
<li><g:link controller="role" action="show"
id="${userInstance.id}">${userInstance.encodeAsHTML()}</g:link>
</li>
</g:each>

我试图将 $ {companyInstance} 作为参数传递,但是我遇到了异常或者它没有用。

我也尝试过使用 User.findAllByCompany

使用时:
<g:findAll in="${user}" expr="it.company == ${companyInstance}  ">

我得到一个空集。

有没有一种简单的方法可以实现这一目标而无需编写taglib?

提前致谢。

路易斯

最佳答案

<g:findAll>标记遍历对象列表,但不会像User.findAll(..)那样查询数据库

正确的代码是:

<g:each in="${User.findAll('from User as u where u.company=:company order by username', [company: companyInstance])}" var="userInstance">
<li><g:link controller="role" action="show"
id="${userInstance.id}">${userInstance.encodeAsHTML()}</g:link>
</li>
</g:each>

如果您绝对要使用g:findAll,那么首先需要构建用户列表,如下所示:
<% def users = User.listOrderByUsername()%>
<g:findAll in="${users}" expr="it.company == ${companyInstance} ">

希望对您有所帮助

问候,

法比恩

关于grails - Groovy findAll和每个标签问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026203/

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