Coldfusion 10 cfloop错误

Coldfusion 10 cfloop错误,coldfusion,coldfusion-10,Coldfusion,Coldfusion 10,从coldfusionOX升级到coldfusion 10后,我遇到一个错误 处理请求时出错,无法删除复杂对象类型 转换为简单值 表达式已请求变量或中间表达式 结果是一个简单的值。但是,无法将结果转换为 简单值。简单值是字符串、数字、布尔值和 日期/时间值。查询、数组和COM对象是 复杂值。最可能的错误原因是您尝试了 将复杂值用作简单值。例如,您尝试使用 cfif标记中的查询变量 它出现在cfloop index=local.thisRight list=rights行。看来ColdFusion

从coldfusionOX升级到coldfusion 10后,我遇到一个错误

处理请求时出错,无法删除复杂对象类型 转换为简单值

表达式已请求变量或中间表达式 结果是一个简单的值。但是,无法将结果转换为 简单值。简单值是字符串、数字、布尔值和 日期/时间值。查询、数组和COM对象是 复杂值。最可能的错误原因是您尝试了 将复杂值用作简单值。例如,您尝试使用 cfif标记中的查询变量

它出现在cfloop index=local.thisRight list=rights行。看来ColdFusion不喜欢这里的权利

有人能帮我吗?非常感谢

<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>

我敢打赌它在这方面失败了:

 <cfloop index="local.thisRight" list="rights" >
您正试图将字符串权限用作列表。我的第一反应是你需要这样做:

 <cfloop index="local.thisRight" list="#rights#" >

在代码的前面,您可以这样做:

<cfif local.getAffiliations.relationshipType is "interested">

转储有问题的变量并查看它们的实际情况。您所说的导致错误的代码不在示例中。该代码仍然没有显示rights变量的创建位置/方式。如果它是一个查询列,您可能会在页面上使用其他同名变量。接受Dan的建议和cfdump的“权利”,看看里面有什么。当解决问题时,试着找到一个复制案例并发布它。不要只是从应用程序中复制和粘贴代码。几乎所有的代码都可能不会导致您的问题,所以您应该在将其发布到这里之前将其删除,以便我们仔细阅读。另外,试着把这个问题从你的应用程序的上下文中去掉,以消除任何不明显的影响因素。您发布的代码应该只反映演示您的问题所需的内容,并且我们可以复制、粘贴和运行它。建议阅读:链接到我的博客。。。伯爵。这也应该是您在提问之前执行自己的故障排除的方式。采取措施找出问题所在,并修改您的重新编写案例,以了解问题所在。通常,在采用这种方法时,您会解决自己的问题。另外,至少一定要包括您自己已经尝试过的故障排除步骤。您所说的不会导致问题中的错误。因此我们投了反对票。谢谢你的回复。我已经编辑了代码。是列表=权限导致了问题。你知道怎么解决这个问题吗?谢谢
#local.getAffiliations.rights#