我想返回使用Zend_Soap的对象。我也希望在WSDL文件中给出的对象。但我不能让两者协同工作。它的一个或另一个。

<强> 1。 WSDL工作,但对象没有返回

如果我对SOAP服务器脚本函数的PHPDoc的,我写

 @return Application_Model_Soap_Test

我可以看到它在WSDL文件中

<message name="getPostcodeOut">
    <part name="return" type="tns:Application_Model_Soap_Test"/>
</message>

但是当我运行该脚本,它返回一个空类:

stdClass Object
(
)

<强> 2。获取的对象,但错WSDL

如果我更改了服务器功能的PHPDoc的信息,以

@return mixed Application_Model_Soap_Test

我得到信息的对象回:

stdClass Object
(
    [name] => Fred
    [age] => 40
)

但WSDL文件是错误的

<message name="getPostcodeOut">
    <part name="return" type="xsd:anyType"/>
</message>

任何想法?感谢。

有帮助吗?

解决方案

您需要传递一个“类映射”选项变量在客户端。

同时看到 http://www.php.net/manual/en/ soapclient.soapclient.php http://www.php.net /manual/en/soapclient.soapclient.php 关于选项阵列中传递的“类映射”选项。

基本上,它应该是一个数组映射你的类定义为在WSDL文件返回的对象的类。

其他提示

你试图关闭缓存?

在PHP你怎么能清除一个WSDL缓存?

我有同样的问题。每个请求我做回我一个空stdClass的,即使WSDL是正确的。禁用缓存后它的工作对我罚款。试试看。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top