首先,感谢花时间阅读并可能回答这个问题。另外,我是CF的亲戚。
我有一个.cfm文件,当用户填写一个Web表单时(即表单操作使用POST方法指向它)时会调用该文件。然后.cfm将另一个表单POST到数据跟踪端点,然后继续进行下一个面向用户的视图。
我遇到的问题,到目前为止,我在整个Mura项目中遇到的问题是,应用程序范围无法按照我预期的方式运行。例如,我像这样设置应用程序变量:
<cfif isDefined(form.campaign) AND len(form.campaign) >
<cfset application.campaign = form.campaign />
<cfelse>
<cfset application.campaign = 'default' />
</cfif>
<cfif isDefined(form.channel) AND len(form.channel)>
<cfset application.channel = form.channel />
<cfelse>
<cfset application.channel = form.channel/>
</cfif>
如果在这种情况下cfdump'd根据我传递的内容得出预期值。但是,一旦我转到下一个视图(使用cflocation
)和cfdump
应用程序范围,这两个键就不可用了。
我的印象是应用程序范围应该在会话中持续存在,或多或少?
答案 0 :(得分:1)
TLDR:确保应用程序中只有一个Application.cfX实例。
团队成员在Application.cfc目录的更高级别创建了一个名为application.cfm的文件,该文件优先于正确的文件,并打破了大量的东西。
添加它是为了尝试向用于业务逻辑/表单处理的.cfm文件发出HTTP请求。这允许这样做,但却产生了许多其他问题。
从目录中删除该文件,将表单处理逻辑移动到/ remote(Mura支持HTTP请求)并重构一些代码;应用程序和会话范围在整个应用程序中再次可用,Mura($)范围也是如此。