检查带有过滤条件的实体加载是否返回结果



我像这样调用实体加载:

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

如何检查实体加载是否返回了记录? 如果筛选条件上存在匹配项,则返回 Object。 如果没有匹配项,则不返回任何内容,并且变量 currentSubmit 不存在。

我发现的问题是,如果我使用:

a. isObject(currentSubmit),当不返回任何内容时给出错误,因为当前提交不存在。

b. isDefined(currentSubmit),当返回某些内容时给出错误,因为您无法对对象执行isDefined。

所以问题是,我应该使用什么方法来确定 entityLoad 是否返回了结果?

这是我尝试组合在一起的完整方法。 基本上,我想根据某些过滤条件加载一个实体并返回它,如果没有匹配的实体,则返回一个新的 Empty 实体。

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

您要查找的函数。

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

更新:尽管isDefined()structKeyExists()可能有效,但isNull()是检查entityLoad()是否找到任何东西的实际功能。 事实上,它在 CF9 中引入只是为了做到这一点。

尝试isDefined("currentSubmission")(注意引号)或稍快一点structKeyExists(variables,"currentSubmission")

最新更新