【问题标题】:Can Grails 3.3 fields plugin f:display show many-to-manyGrails 3.3 字段插件 f:display 可以显示多对多
【发布时间】:2020-08-20 22:25:58
【问题描述】:

我正在使用 Grails 3.3.9,但我可以根据需要进行更改。

我想让 Grails 字段插件在生成时管理我的 CRUD,或者至少只进行最少的手动更改。我无法解决的问题是当我有一个多对多关系并且想要从任一方显示相关实例时。

一个简单的例子:两个域类,Company 和 Worker。每个都有一个字符串名称,每个都有一个 hasMany:

static hasMany = [companies: Company] // in Worker
static hasMany = [workers: Worker] // in Company

我不认为任何一个类都属于另一个。

当我 generate-all 并运行应用程序时,然后使用 Worker / new CRUD 创建新的 Worker 实例,一切似乎都很好。

然后,当我使用 Company / new CRUD 创建公司时,会为我提供已定义工作人员的下拉列表,这看起来不错;所以我按住 shift 键单击一对,将它们包含在新的公司定义中。但是在保存之后,show CRUD 没有显示我刚刚创建的 Company 实例的选定工作人员列表。有一个字段标签“Workers”,但旁边没有显示任何值。

我似乎找不到任何明显的方法来鼓励 f:display 显示该列表 - 或者可能以某种方式多选没有产生预期的结果。

【问题讨论】:

    标签: grails grails-orm grails-plugin grails-domain-class


    【解决方案1】:

    是的,它可以。解决了我的问题。本页:

    https://github.com/grails-fields-plugin/grails-fields/blob/master/grails-app/views/templates/_fields/_list.gsp

    显示模板是(应该是什么?)呈现字段。想知道这是否与我的版本有所不同,我将该文件安装在

    ...grails-app/views/templates/_fields/_list.gsp

    突然间我的多对多关系就可见了。

    可能对遇到此问题的其他人有用的额外信息:

    我遵循 GORM 参考手册的建议来创建多对多关系,其中每一方都包含一个

    static hasMany = [...]
    

    而“拥有”的一方也有一个

    static belongsTo = 
    

    我想我可能对本例中的 belongsTo 的含义感到困惑——这里已经很好地解释了它的含义:

    http://docs.grails.org/3.0.4/guide/GORM.html#manyToMany

    【讨论】:

    • 嗯,也许我只需要belongsTo。看来我现在可以删除该模板并且一切正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多