首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coldfusion 10 cfloop误差

Coldfusion 10 cfloop误差
EN

Stack Overflow用户
提问于 2015-05-30 00:57:44
回答 2查看 162关注 0票数 0

在从coldfusionOX升级到coldfusion 10之后,我得到了一个错误。

处理请求复杂对象类型不能转换为简单值时发生错误。 表达式请求变量或中间表达式结果为简单值。但是,不能将结果转换为简单值。简单值是字符串、数字、布尔值和日期/时间值。查询、数组和COM对象是复杂值的示例。导致此错误的最可能原因是试图将复杂值用作简单值。例如,您试图在cfif标记中使用查询变量。

它发生在行“cfloop index="local.thisRight" list="#rights#"”处。ColdFusion似乎不喜欢这里的“权利”。

有人能帮我吗?非常感谢。

代码语言:javascript
复制
<cfif local.profile.rights.profile.self is not "">
    <cfquery name="local.getAffiliations" datasource="#Request.readerDSN#">
        SELECT tblPersonsToAffiliations.affiliationID, tblPersonsToAffiliations.rights, tblAffiliations.affiliationType, tblPersonsToAffiliations.relationshipType
            FROM tblPersonsToAffiliations INNER JOIN tblAffiliations
                ON tblPersonsToAffiliations.affiliationID = tblAffiliations.affiliationID
            WHERE tblPersonsToAffiliations.personID IN (#local.profile.rights.profile.self#)
            AND (tblPersonsToAffiliations.archived IS NULL
            OR tblPersonsToAffiliations.archived = '')
    </cfquery>
    <cfif local.getAffiliations.recordCount is not 0>
        <cfloop query="local.getAffiliations">
            <cfif local.getAffiliations.relationshipType is "interested">
                <cfset local.thisRelationshipType = "provisionalMember">
                <cfif IsDefined("local.profile.rights.#affiliationType#.#local.thisRelationshipType#")>
                    <cfset local.profile.rights[affiliationType][local.thisRelationshipType] = ListAppend(local.profile.rights[affiliationType][local.thisRelationshipType], affiliationID)>
                <cfelse>
                    <cfset local.profile.rights[affiliationType][thisRelationshipType] = affiliationID>
                </cfif>
            <cfelse>
                <cfset local.thisRelationshipType = "fullMember">
                <cfif IsDefined("local.profile.rights.#affiliationType#.#local.thisRelationshipType#")>
                    <cfset local.profile.rights[affiliationType][local.thisRelationshipType] = ListAppend(local.profile.rights[affiliationType][local.thisRelationshipType], affiliationID)>
                <cfelse>
                    <cfset local.profile.rights[affiliationType][local.thisRelationshipType] = affiliationID>
                </cfif>

                <cfif isNull(rights)>
                <cfelse>
                    <cfloop index="local.thisRight" list="#rights#" >
                        <cfif IsDefined("local.profile.rights.#affiliationType#.#local.thisRight#")>
                            <cfset local.profile.rights[affiliationType][local.thisRight] = ListAppend(local.profile.rights[affiliationType][local.thisRight], affiliationID)>
                        <cfelse>
                            <cfset local.profile.rights[affiliationType][local.thisRight] = affiliationID>
                        </cfif>

                    </cfloop>
                </cfif> 
            </cfif>
        </cfloop>
    </cfif>
</cfif>
EN

回答 2

Stack Overflow用户

发布于 2015-05-30 15:29:46

在您的代码中,您可以更早地执行以下操作:

代码语言:javascript
复制
<cfif local.getAffiliations.relationshipType is "interested">

我认为在计算"relationshipType“时,您需要在”权限“前面使用相同的查询名称前缀。

试试这个:

代码语言:javascript
复制
#local.getAffiliations.rights#

哈哈!

票数 0
EN

Stack Overflow用户

发布于 2015-05-30 01:43:47

我敢打赌它在这条线上失败了:

代码语言:javascript
复制
 <cfloop index="local.thisRight" list="rights" >

您正在尝试使用字符串“权限”作为列表。我的第一反应是你需要这样做:

代码语言:javascript
复制
 <cfloop index="local.thisRight" list="#rights#" >
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30541126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档