多对多,无污垢

发布于 2024-11-05 17:09:38 字数 612 浏览 1 评论 0原文

如何制作一个用于添加具有角色的用户的表单,我想使用类似于 yabe 示例中的内容,但没有 CRUD...

User:
@ManyToMany(cascade=CascadeType.ALL)
public Set<Role> roles = new HashSet();

Role: 
@ManyToMany(mappedBy="roles")
public Set<User> users = new HashSet<User>();

#{field 'user.email'}
<input id="${field.id}" name= "${field.name}" class="element text" maxlength="255" size="20" value="${field.value}"/>
#{/field}
...
<select multiple name="roles">
#{field 'user.roles'}
<option value="admin">admin</option>
<option value="user">user</option>
#{/field}
</select>

How to make a form for adding users, which have roles, I want to use something like in yabe example, but without crud...

User:
@ManyToMany(cascade=CascadeType.ALL)
public Set<Role> roles = new HashSet();

Role: 
@ManyToMany(mappedBy="roles")
public Set<User> users = new HashSet<User>();

#{field 'user.email'}
<input id="${field.id}" name= "${field.name}" class="element text" maxlength="255" size="20" value="${field.value}"/>
#{/field}
...
<select multiple name="roles">
#{field 'user.roles'}
<option value="admin">admin</option>
<option value="user">user</option>
#{/field}
</select>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

以往的大感动 2024-11-12 17:09:38

可能有更好的方法来做到这一点,我有兴趣找出答案,但我这样做:

<div class="field">
  <select name="user.roles.id" multiple>
    %{ models.Role.all().fetch().sort{ it.toString() }.each() { }% 
    %{ selected = false; user?.roles.each() { f -> if (f.id == it?.id) selected = true; } }%
    <option value="${it?.id}"${selected ? 'selected'.raw() : ''}>${it}</option>
    %{ } }%
  </select>
</div>

There's probably a better way to do it, and I'd be interested in finding out, but I do it like this:

<div class="field">
  <select name="user.roles.id" multiple>
    %{ models.Role.all().fetch().sort{ it.toString() }.each() { }% 
    %{ selected = false; user?.roles.each() { f -> if (f.id == it?.id) selected = true; } }%
    <option value="${it?.id}"${selected ? 'selected'.raw() : ''}>${it}</option>
    %{ } }%
  </select>
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文