对象作为PHP中SOAP客户端的参数



在php中传递对象参数有问题。也许你能帮我。

我想使用getBookingPairsByPersonID方法

在Wsdl中看起来像这样:

<xsd:element name="getBookingPairsByPersonID" type="tns:getBookingPairsByPersonID"/>
<xsd:complexType name="getBookingPairsByPersonID">
<xsd:sequence>
<xsd:element minOccurs="0" name="arg0" nillable="true" type="xsd:string"/>
<xsd:element name="arg1" nillable="true" type="tns:ArrayOfString"/>
<xsd:element minOccurs="0" name="arg2" type="ns0:WSTimestamp"/>
<xsd:element minOccurs="0" name="arg3" type="ns0:WSTimestamp"/>
<xsd:element name="arg4" type="xsd:boolean"/>
<xsd:element name="arg5" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>

这是文档所说的

java.util.List<WSBookingPair> getBookingPairsByPersonID(java.lang.String session,
java.lang.String[] personIDs,
WSTimestamp from,
WSTimestamp to,
boolean checked,
int type)

我的PHP代码:


$wsID  = array ('1063');
$wsInt = 1;
$wschecked = false;
$wsFrom ='28.07.2021 00:00:00';
$wsTo ='28.07.2021 23:59:59';
$wsBooking = $client->getBookingPairsByPersonID(array('arg0' => $session->return, 'arg1' => array('ArrayOfString' => $wsID) , 'arg2' =>  $wsFrom , 'arg3' => $wsTo, 'arg4' => $wschecked, 'arg5'=> $wsInt));
var_dump($wsBooking->return);
echo var_dump($client->__getLastRequest());

输出:

object(stdClass)[21] null

wtimestamp的结构如下:

输入:

$wsTsNow = $client->getTime(array('arg0' => $session->return));

输出:

object(stdClass)[5]
public 'return' => 
object(stdClass)[6]
public 'TS' => int 1627977040077
public 'day' => int 3
public 'hour' => int 9
public 'min' => int 50
public 'month' => int 8
public 'sec' => int 40
public 'timeInSeconds' => int 1627977040
public 'timestamp' => string '03.08.2021 09:50:40' (length=19)
public 'year' => int 2021

我试图创建一个对象之后,但也没有工作

class WSTimestamp{
public $timestamp;
}
$wsFrom = new WSTimestamp();
$wsFrom->timestamp = "28.07.2021 00:00:00";
$wsTo = new WSTimestamp();
$wsto->timestamp = "28.07.2021 23:59:59";

我不明白的是下面的方法是有效的

描述:


getLevelsEByIdentification
java.util.List<WSExtensibleLevel> getLevelsEByIdentification(java.lang.String session,
WSLevelIdentification[] ids,
WSTimestamp timestamp)
代码:


$wsTsNow = $client->getTime(array('arg0' => $session->return));
$wsLevelIdentArray = array('levelID' => 1, 'code' => '17022');
$wsLevelEArray = $client->getLevelsEByIdentification(array('arg0' => $session->return, 'arg1' => array('WSLevelIdentification' => $wsLevelIdentArray), 'arg2' => $wsTsNow));

如何正确传递object参数?

现在可以运行了:

输入:

$wsInt = 2;
$wschecked = false;
$wsID  = array ("9999");

class WSTimestamp{
public $timestamp;
}
$wsFrom = new WSTimestamp();
$wsFrom->timestamp = "09.07.2021 00:00:00";
$wsTo = new WSTimestamp();
$wsTo->timestamp = "09.07.2021 23:59:59";
$wsBooking = $client->getBookingPairsByPersonID(array('arg0' => $session->return, 'arg1' => $wsID , 'arg2' =>  $wsFrom , 'arg3' => $wsTo, 'arg4' => $wschecked, 'arg5'=> $wsInt));
var_dump($wsBooking->return->WSBookingPair);

输出:

object(stdClass)[20]
public 'absence' => boolean false
public 'checked' => boolean false
public 'complete' => boolean true
public 'duration' => int 0
public 'from' => 
object(stdClass)[21]
public 'TS' => int 1625828040000
public 'day' => int 9
public 'hour' => int 12
public 'min' => int 54
public 'month' => int 7
public 'sec' => int 0
public 'timeInSeconds' => int 1625828040
public 'timestamp' => string '09.07.2021 12:54:00' (length=19)
public 'year' => int 2021
public 'fromBookingID' => int 1905
public 'fullDay' => boolean false
public 'levels' => 
object(stdClass)[22]
public 'notice' => string '' (length=0)
public 'person' => string '9999' (length=4)
public 'properties' => null
public 'to' => 
object(stdClass)[23]
public 'TS' => int 1625828040000
public 'day' => int 9
public 'hour' => int 12
public 'min' => int 54
public 'month' => int 7
public 'sec' => int 0
public 'timeInSeconds' => int 1625828040
public 'timestamp' => string '09.07.2021 12:54:00' (length=19)
public 'year' => int 2021
public 'toBookingID' => int 1906

相关内容

  • 没有找到相关文章

最新更新