2009-05-08 12 views
1

私はうんざりしていました。アプリケーション変数をonApplicationStartにロードできるテーブルに移動するといいと思いました。クエリからColdFusionの動的アプリケーション変数を設定する

私の意図は、私のテストコードで

.. ANTアプリを展開することができ、およびデータベースとことわざのプレストでいくつかの設定を変更することで、Application.cfcのは、すべて呼び出すための単純なクエリを持っています変数名とcfloopを使用して、アプリケーションスコープ内の各変数をapplication.varnameとして設定します。

ApplicationStartではエラーは報告されていませんが、変数を参照しようとすると、定義されていない型エラーが発生します。

私のスパイダーの感覚は、これが何か小さくて明白なものだと私に伝えます...どんなアイデアですか?

ありがとうございます!

アップデート1:

http://www.bennadel.com/blog/152-Dynamic-ColdFusion-Variables-Via-Quoted-Naming.htm

答えて

3

使用...動的な変数名を設定しているものを私は見ていようで、彼らはアプリケーション変数であるという事実はあまり影響を与えていないようですcfoutop + cfset not cfoutput

+0

cfloopを試してみます。私は主な問題は、私が上に追加したリンクに従って引用された命名によって変数を定義する必要があるかもしれないと考えていると思います。 –

2

質問を正しく読んでいれば、cfoutputタグ内にアプリケーション変数を設定していると言えますか?

あなたはあなたがそれはしかし、いくつかのコードをせずに支援するためのハードのようなものだというのcfoutput

<cfloop query="queryName"> 
    <cfset application.varName = queryName.varName /> 
</cfloop> 

よりのcfloop使用する必要があります

<cfoutput query="queryName"> 
    <!--- Setting code in here ---> 
</cfoutput> 

ようCFOUTPUT使用しています。

私の質問は、あなたがデータベースにアプリケーション変数を格納して、アプリケーションスコープに戻すのはなぜでしょうか?

+0

したがって、それらをデータベース(パス、アプリケーション名など)に設定できます。私は設定を変更するために自分のコードに入るのが好きではありません。上記で追加したリンクを見ると、動的変数名に二重引用符を付けることが問題になりました。私はcfoutputを書いていましたが、私が使用していたcfloopを意味していました。 –

4

私の質問への答えは、名前を引用して、動的変数名を設定することでした。..

<!--- Loop over the girls and alter the values. ---> 
<cfloop index="intGirl" from="1" to="3"> 

<!--- Randomly pick 1 (true) or 0 (false). ---> 
<cfif RandRange(0, 1)> 

<!--- Set the dynamic variable naming used quoted evaluation. ---> 
<cfset "Girl#intGirl#" = "super sexy" /> 

</cfif> 

</cfloop> 

もっとここに...

http://www.bennadel.com/blog/152-Dynamic-ColdFusion-Variables-Via-Quoted-Naming.htm

6

著者がいた場合、私は知りませんその構文を提唱するか、単にそれが動作することを実証するだけで、興味のあるポイントとなります。

個人的には、私は配列記法を好みます。私はそれが良いスコープの習慣を促進するのに役立つと思う。

<!--- array notation ---> 
<cfset scope["staticName"& dynamicPortion] = "some value"> 

<!--- example 1 ---> 
<cfset variables["baseName"& x] = "oh brother"> 
<!--- example 2 ---> 
<cfset variables["baseName#x#"] = "oh brother"> 
+0

私は同意します。誰かがあなたのコードを維持するために後退したとき、が混乱しない限り、気になることがわかります。 +1の表記法です。 –

関連する問題