只有第一个参数传递给SOAP服务器PHP和yii

时间:2013-10-14 14:12:34

标签: php web-services soap yii

我正在使用yii构建一个soap web服务。我遇到了一个奇怪的问题。

我创建了参数,例如:

  $new=array('x' => 1,
             'y' => 2,
             'z' => 3);

然后我发送它,soap服务器只接收数组中的第一个值。

肥皂服务器:

<?php
 class testController extends CController
{
    public function actions()
    {
        return array(
            'new'=>array(
                'class'=>'CWebServiceAction',
            ),
        );
    }

    /**
     * @param int $x
     * @param int $y
     * @param int $z
     * @return returnParams
     * @soap
     **/
    public function test($x,$y,$z)
    {
        Yii::log("$x : $y : $z", CLogger::LEVEL_ERROR);
        $returnParam = new returnParams();
        $returnParam->x = $x;
        $returnParam->y = $y;
        $returnParam->z = $z;
        return $returnParam;

    }

}
?>

returnParams类如下

    <?php

  class returnParams{
        /**
        * @var int
        * @soap
        **/
  public $x;

        /**
        * @var int
        * @soap
        **/
  public $y;

        /**
        * @var int
        * @soap
        **/
  public $z;

 }

所以它很基本,收到信息并立即发回。

以下是回复

object(stdClass)#2 (9) {
  ["x"]=>
  int(1)
  ["y"]=>
  NULL
  ["z"]=>
  NULL

日志显示$ y和$ z为空。谁能看到我在这里做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

正如我所说,答案如下。

我正在创建一个数组并将其发送到soap服务器

    $new=array('x' => 1,
             'y' => 2,
             'z' => 3);

$response = $client->test($new);

我应该去哪里

$x = 1;
$y = 2;
$z = 3;
$response = $client->test($x,$y,$z);

感谢您的帮助。