我正在尝试使用远程函数获取CFC(webCFC)以返回不同CFC(objCFC)的实例。
以下是CFC:
#webCFC
component {
remote function displayCFC(version=1) {
if(version==1) {
return new baseCFC();
} else {
return new objCFC();
}
}
}
#baseCFC
component
accessors="true"
persistent="true"
{
property name="name" default="pete";
}
#objCFC
component
extends="baseCFC"
persistent="true"
accessors="true"
{
property name="age" default="30";
}
如果我将此网址称为: /webCFC.cfc?method=displayCFC&returnFormat=json ,我会收到此回复:
{
"name" : "pete"
}
哪个好。如果我调用此URL: /webCFC.cfc?method=displayCFC&returnFormat=json&version=2 ,则响应将缺少 baseCFC
中的属性{
"age" : 30
}
我希望回复看起来像这样:
{
"name" : "pete",
"age" : 30
}
我知道我可以在objCFC上使用setName()和getName()函数,它最终扩展 baseCFC 但是如果我通过浏览器访问CFC则不会显示扩展属性。
是否有可能让它发挥作用?
答案 0 :(得分:0)
这可能与seralizejson
错误有关(不确定它什么时候会没有bug)。
解决方法是实现您自己的getMemento()
或toJSON()
方法,该方法返回结构中的所有所需属性。然后serializeJSON
改为结构。