【问题标题】:Getting a controller data in my layout view在我的布局视图中获取控制器数据
【发布时间】:2013-08-06 06:29:43
【问题描述】:

我正在研究 grails,并面临这样一个问题,即如何在我的布局视图中获取与其他(联系人)控制器有很多关系的控制器(在我的情况下为 contactGroup)数据。下面是我的域类代码...

class Contact {
    String number
    String name

    ...

    static hasMany = [groups: ContactGroup, messages: Message]
    static belongsTo = [Message, ContactGroup]
}

class ContactGroup {
String groupName
String description

...

static hasMany = [contacts: Contact, messages: Message]
}

下面是我的布局视图代码,它用于获取所有组,括号中包含联系人的数量...就像 Gmail 显示联系人和组列表一样。

 <h4>Contacts</h4>
    <g:link controller="contact" action="list" class="active"><h5>All (${smsserver.Contact?.list().size()})</h5></g:link>
    <g:layoutBody/>
    <g:each in="${smsserver.ContactGroup}" var="c">
        <g:link controller="contact" action="list">${c.findAll()}<br></g:link>
    </g:each>

请帮帮我。

【问题讨论】:

    标签: grails view controller


    【解决方案1】:

    你有 m:n 关系。这意味着 1 个联系人有很多组,每个组有很多联系人。我对吗?并且您想显示给定联系人的所有组和组中的所有联系人。 好的。

    1. 获取给定联系人的所有组:

      ${contact.groups}

    或者更合适

    <ul>
    <g:each in="${contact.groups}" var="group">
        <li>
            ${group.groupName} (${group.contacts.size()})
        </li>
    </g:each>
    </ul>
    

    显示给定联系人的所有组和联系人

    <ul>
    <g:each in="${contact.groups}" var="group">
        <li>
            <b>${group.groupName}</b> (${group.contacts.size()})
            <ul>
            <g:each in="${group.contacts}" var="c">
                <li>
                    ${c.name}
                </li>
            </g:each>
            </ul>
        </li>
    </g:each>
    </ul>
    

    你的控制器:

    class ContactController {
    
        def show(long id) {
            def contact = Contact.get(id)
            ['contact': contact]
            // or
            // render view:'YourPage', model:['contact': contact]
        }
    }
    

    更多详情http://grails.org/doc/latest/guide/theWebLayer.html#controllers

    【讨论】:

    • 做了同样的方法......但它显示错误“无法在空对象上获取属性'组'”
    • 您必须将“联系人”放到模型中。
    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 2013-07-16
    • 2014-07-30
    • 2016-03-03
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 2012-07-20
    相关资源
    最近更新 更多