Coldfusion EntityLoad获取未找到的方法,但在使用EntityLoadByPK时get方法有效

时间:2017-03-26 19:32:44

标签: mysql database coldfusion

我正在coldfusion 2016上构建一个web应用程序,到目前为止一切正常,但是当我使用entityload并尝试使用getAdminID()方法检索adminID时,我收到一条错误消息,说getAdminID方法不存在。但是,当我使用GetComponentMetadata()时,我会看到所有实体方法。请参阅下面的代码和图片:

<CFSCRIPT>
ORMReload();
showAdmin=getComponentMetadata("cfc.tbladmin");
</CFSCRIPT>
<cfdump var="#showAdmin#">

enter image description here

但是当我尝试调用getAdminID()方法时,我得到了该方法不存在的错误。看下面的错误和图片:

<CFSCRIPT>
ORMReload();
admin=entityload("tbladmin").getAdminID();
</CFSCRIPT>
<cfdump var="#admin#" >

enter image description here

1 个答案:

答案 0 :(得分:0)

您收到错误,因为当您调用entityLoad时,它会返回该表中所有对象的集合。更具体地说,是所有实体的数组。因此,调用entityload("tbladmin").getAdminID()无法正常工作,因为您尝试在数组上调用.getAdminID()

您必须遍历所有实体并在每个单独的实体上调用.getAdminID()。尝试这样的事情:

<cfscript>
   var adminEnts = entityLoad("tbladmin");
   for (var adminEnt in adminEnts) {
       writeDump(adminEnt.getAdminID());
   }
</cfscript>