PHP SoapClient 调用参数


php soapclient call params

我需要在 php 中转换上述调用,特殊之处在于在调用中必须在同一参数中有三个参数:

<v20:searchItem>
         <!--Optional:-->
         <arg0>customer_id</arg0>
         <arg1>table_name</arg1>
         <arg3><field_name>Barcode</field_name><value>record_id</value></arg3>
         <arg3><field_name>DOC_DATE min</field_name><value>date_min</value></arg3>
         <arg3><field_name>DOC_DATE max</field_name><value>date_max</value></arg3>
         <arg4></arg4>
         <arg5>0</arg5>
         <arg6>1000</arg6>
      </v20:searchItem>

我的代码是:

$myParams1 = array('field_name' => 'Barcode',
                                  'value' => $barcode);
$myParams2 = array('field_name' => 'DOC_DATE min',
                                  'value' => $datai);
$myParams3 = array('field_name' => 'DOC_DATE max',
                                  'value' => $newdate);
$params = array(
    "arg0" => $sasAliasSP,  
    "arg1" => $sasAliasDA,
    "arg2" => "",
    "arg3" =>$myParams1,
    "arg3" =>$myParams2,
    "arg3" =>$myParams3,
    "arg4" => "",
    "arg5" => "0",
    "arg6" => "1000"
);

但是不工作,你能帮忙吗?谢谢

试试这个:

$params = array(
    "arg0" => $sasAliasSP,  
    "arg1" => $sasAliasDA,
    "arg2" => "",
    "arg3" => array($myParams1, $myParams2, $myParams3),
    "arg4" => "",
    "arg5" => "0",
    "arg6" => "1000"
);

我终于在这篇文章中找到了解决方案:https://stackoverflow.com/a/19774498/6564057

arg3 需要是一个以 0 开头的升序键的数组,所以我现在的代码是:

$myParams[] = array('nome_Campo' => 'Barcode', 'valore' => $barcode);
$myParams[] = array('nome_Campo' => 'DOC_DATE min', 'valore' => $datai);
$myParams[] = array('nome_Campo' => 'DOC_DATE max', 'valore' => $newdate);
$params = array(
    "arg0" => $sasAliasSP,  
    "arg1" => $sasAliasDA,
    "arg2" => "",
    "arg3" => $myParams,
    "arg4" => "",
    "arg5" => "0",
    "arg6" => "1000"
);

它就像魅力一样工作。谢谢。