まず、読んでいただきありがとうございます。また、私はCFの仲間です。CFアプリケーションスコープはMuraで変更できますか?
私は、ユーザがウェブフォームに記入すると呼び出される.cfmファイルを持っています(つまり、フォームアクションがPOSTの方法でそれを指しています)。その後、.cfmは別のフォームをデータ追跡エンドポイントにPOSTし、次のユーザー向きのビューに進みます。
私が苦しんでいるこの問題は、これまでのMuraプロジェクトでは、アプリケーションスコープが期待通りに動作しないということです。例えば、私はそうのようなアプリケーションVARSを設定します。この文脈でcfdump'd場合
<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>
は、私はそれを渡しているものに基づいて期待値に出てきます。しかし、次のビュー(cflocation
を使用)に転送し、アプリケーションスコープcfdump
を転送すると、その2つのキーは使用できません。
私は、アプリケーションスコープがセッションの間、多かれ少なかれ続くと思われていましたか?
質問には関係ありませんが、実際のコードでは 'isDefined(form.campaign)'ではなく 'isDefined(" form.campaign ")'(引用符付き)を使用しているとします。それ以外の場合、その変数が定義されていないと、コードはエラーになります。 – Leigh
'application'スコープは変更可能ですが、私は本当に' session'スコープを使用するべきであるというあなたの質問に基づいて考えています。 'application'スコープはアプリケーションごとです。つまり、アプリケーションのすべてのユーザーが同じアプリケーションスコープを参照します。 'session'スコープはユーザーごとです。両方のスコープは、 'application.cfc'で定義されたタイムアウト値まで持続します。 – beloitdavisja
実際のコードが含まれていないため、この問題を確認するのは難しいです。あなたが与えたコードサンプルにはいくつかの問題があります。 Leighが既に指摘したように、 'isDefined()'関数の値を引用する必要があります。このコードは 'form.channel'変数が存在しないときに間違って割り当てています - これはエラーを投げます。理論的には、アプリケーションやセッションスコープに値を割り当てることは問題ではなく、それらの値は維持されるべきです。だから、あなたのコードには何かが間違っている可能性がありますが、与えられた例を使って、それが何であるかはわかりません。 –