0

我正在尝试使用远程函数获取 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";
}

如果我调用这个 URL:/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,扩展属性不会显示。

有可能让它工作吗?

4

1 回答 1

0

这可能与seralizejson错误有关(不确定何时会没有错误)。

一种解决方法是实现您自己的方法getMemento()toJSON()方法,该方法在结构中返回所有所需的属性。然后serializeJSON是那个结构。

于 2012-09-05T18:01:22.037 回答