Как ответить / отправить несколько объектов из контроллера для просмотра в Grails? - PullRequest
0 голосов
/ 14 июня 2019

Нам нигде не удалось найти пример того, как это сделать.

Кажется, что способ отправки данных из контроллера в представление - это использовать ответ.Обычно ответить принимает один аргумент.Мы хотим отправить много.

Например, если у нас есть панель управления, на которой отображается много разных данных (остатки на счетах пользователей, последние транзакции, сообщения и т. Д.).

Наш контроллер выглядит следующим образом:

def index() {

    User user = User.find (session.getAttribute("user"))
    def accounts = Accounts.findAllByUser(user)
    def messages = Messages.findAllByUser(user)

    // this doesn't work, but we guess something like this might be possible.
    respond [accounts:accounts, messages:messages]
}

Кроме того, документация findAllBy не сообщает, что возвращает.Это может быть массив, карта, список.

Тогда, на наш взгляд, мы сможем сделать что-то вроде:

${accounts[0].balance}

или, может быть,

${accounts.size()}

если findBy ... возвращает список.

1 Ответ

0 голосов
/ 14 июня 2019

благодаря Mike W, ответ:

def index() {

    User user = User.find (session.getAttribute("user"))
    def accounts = Accounts.findAllByUser(user)
    def messages = Messages.findAllByUser(user)

    [accounts:accounts, messages:messages]
}

Это позор, это не в примерах в документах, это очень полезная функция

...