1

私は次のようにentityLoadを呼び出しています:

currentSubmission =  entityload("EventSubmission", { eventID = variables.eventID, profileID = variables.profileID, true }

entityLoadがレコードを返したかどうかを確認するにはどうすればよいですか?filtercriteriaに一致するものがある場合、オブジェクトが返されます。一致するものがない場合、何も返されず、変数currentSubmissionは存在しません。

私が見つけている問題は、私が使用する場合:

a。isObject(currentSubmission)は、currentSubmissionが存在しないため、何も返されない場合にエラーを出します。

b。isDefined(currentSubmission)は、オブジェクトに対してisDefinedを実行できないため、何かが返されたときにエラーを出します。

つまり、問題は、entityLoadが結果を返したかどうかを判断するためにどのメソッドを使用する必要があるかということです。

これが私がまとめようとしている完全な方法です。基本的に、いくつかのフィルター基準に基づいてエンティティをロードして返します。一致するエンティティがない場合は、新しい空のエンティティを返します。

public function getByEventProfile(){
    currentSubmission =  entityload("EventSubmission", { eventID = variables.eventID, profileID = variables.profileID }, true);
    if (!isObject(currentSubmission))
        currentSubmission = entityNew("EventSubmission");
    return currentSubmission;
}
4

2 に答える 2

6

isNull()あなたが探している機能です。

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe9cbe5cf462523a0-3c4c0bb81223f1daffb-8000.html

更新:isDefined()またはstructKeyExists()動作する可能性がありますがisNull()、何かが見つかったかどうかをチェックするための事実上の関数です。entityLoad()実際、これを行うためだけに CF9 に導入されました。

于 2012-12-10T04:40:51.563 に答える
2

試してみてくださいisDefined("currentSubmission")(引用符に注意してください)または少し速くstructKeyExists(variables,"currentSubmission")

于 2012-12-10T04:55:19.657 に答える