如何将从findAllBy获得的值插入地图?

时间:2019-04-08 22:02:26

标签: grails groovy

我正在尝试将通过findAllBy方法获得的值插入地图。

我尝试使用each函数,然后使用put将值插入地图,如下所示:

def carousel
def links = [:]
carousel = Carousel.findAllByLang(lang)
carousel.each{
    links.put(
        "image" = it.urlImage
        "url" = it.urlLink
    )
}

我正在尝试重现此代码的作用,但没有硬编码的网址:

links = [
    [
        image: 'https://first.url.jpg',
        url  : 'https://www.first.link.com'
    ],
    [
        image: 'https://second.url.jpg',
        url  : 'https://www.second.link.com'
    ],

    ...
]

但是我没有得到预期的结果。轮播对象的内容很好,我只是无法根据需要在地图内插入值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为主要的问题是我对使用的数据结构没有一个很好的了解。 解决了它:

def carousel
def links = []
carousel = Carousel.findAllByLangAndActive(lang,true,[sort:"sequence", order: "asc"])
carousel.each {
    def map = ["image":it.urlImage, "url":it.urlLink]
    links << map
}