2

Coldfusion 9でORMの使用を開始しましたが、persistant=true実行時にmyCFC.init()プロパティのデフォルト値が割り当てられるように設定されたCFCがあるという問題が発生していますが、必要ありませんこのCFCをORMで使用します。

問題は、Coldfusionが「cfcmyCFC用に定義されたテーブルmyCFCが存在しません」というエラーをスローすることです。

アプリケーションに特定のCFCを無視させる方法はありますか?または、特定のCFCのみに注意を払ってください。persistant=true

または、コンポーネントを永続化せずにデフォルトのプロパティ値を有効にすることはできますか?

4

2 に答える 2

1

または、コンポーネントを永続化せずにデフォルトのプロパティ値を有効にすることはできますか?

はい、init()メソッドで設定するだけです。

<cfcomponent name="person" persistent="false" output="false">

 <cfproperty name="gender"><!--- Non-persistent CFC: you can't set a default here --->

 <cffunction name="init" output="false>
  <cfset variables.gender = "m"><!--- Set the default here --->
 </cffunction>

</cfcomponent>

プロパティ宣言では単純なデフォルト値(リテラル文字列や整数など)しか設定できないため、複雑な値または動的な値のデフォルト(配列や現在の日付など)の永続CFCでもこれを行う必要があります。

<cfcomponent name="person" persistent="true" table="persons" output="false">

 <cfproperty name="gender" default="m"><!---Persistent CFC, so this simple default will be set --->
 <cfproperty name="dateCreated"><!---You can't set a default dynamic date value --->

 <cffunction name="init" output="false>
  <cfset variables.dateCreated= Now()><!--- Set the current datetime here --->
 </cffunction>

</cfcomponent>
于 2012-09-10T07:42:27.070 に答える
0

オープニングと最初のオープニングの間に配置したコードが実行されます。CFpropertyタグを使用してデフォルトを設定していると想定しています。代わりに、次の構造を使用してください。

<cfcomponent name="aCFC">

    <!---
    || Psuedo Constructor code: this code runs when the object is created.
    ||--->

    <cfset defaultVar_1 = "default value">
    ...etc

    <cffunction name="firstFunction">
        ...
    </cffunction>
</cfcomponent>
于 2012-09-05T15:47:46.373 に答える