在从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>发布于 2015-05-30 15:29:46
在您的代码中,您可以更早地执行以下操作:
<cfif local.getAffiliations.relationshipType is "interested">我认为在计算"relationshipType“时,您需要在”权限“前面使用相同的查询名称前缀。
试试这个:
#local.getAffiliations.rights#哈哈!
发布于 2015-05-30 01:43:47
我敢打赌它在这条线上失败了:
<cfloop index="local.thisRight" list="rights" >您正在尝试使用字符串“权限”作为列表。我的第一反应是你需要这样做:
<cfloop index="local.thisRight" list="#rights#" >https://stackoverflow.com/questions/30541126
复制相似问题