3

フォームが送信された後、CFC で orm EntitySave を実行するコントローラー メソッドを呼び出しています。ORM 経由でデータを保存する前に引数をダンプして、それらが実際にデータベースに保存したい値であることを視覚的に検証したいと思います。だから私がこれを使うとき

<cfthrow message="value = #arguments#">

私はこれを取得しています:

Error: Complex object types cannot be converted to simple values.

複雑なオブジェクトでこれを行うことは許可されていないことを理解しているので、そのような場合は使用します<cfdump>が、<cfthrow>. これを達成するためのより良い方法があると確信しています。私はまた、<cfmail>驚くほどうまくいく自分自身に試してみましたが、電子メールは1、2分かかります. どんな提案でも大歓迎です。現在、ValidateThis をチェックしています。

4

3 に答える 3

13

あなたはそれをシリアライズすることができます:

<cfthrow message="value = #serializeJson(arguments)#">

しかし、私はあなたがそのようなものを画面に表示したくないと思います.

私があなただったらログに記録します(同じ概念で、の直前<cflog><cfthrow>、ログエントリに引数を入れ<cfthrow>、エラーの簡単な説明を入れるだけです(その後の処理のために、TYPE属性も使用する必要があります)あなたが提起した例外の。

于 2012-10-16T15:02:32.827 に答える
1

スローするのではなく、ファイルにダンプして、それがニーズを満たしているかどうかを確認できます。

<cfdump var="#arguments#" output="C:\dump.html" format="html">

(スローのように) 中止する必要がある場合は、タグの最後に .abort を追加できます<cfdump... abort>

于 2012-10-16T15:06:40.013 に答える
0

を使用するには、次のようにします<cfdump>

<cfsavecontent variable="arguments_dump">
    <cfdump var="#arguments#" />
</cfsavecontent>
<cfthrow message="#arguments_dump#" />

ただし、もう少しコードが必要であり、上記の Adam Cameron の回答ほどエレガントではありません。

于 2012-10-18T14:54:17.230 に答える