如何在php中处理soap响应


How to handle soap response in php

我需要为我的应用程序使用soap调用,所以我在谷歌上搜索了一些关于laravel中的库,找到了一个:

Laravel SoapClient包装

它没有记录很多,所以我有点卡住了。我已成功检索到数据,但由于数据为"NULL",无法在页面上显示。如果有人能帮我哪里做错了?

我的代码是下一个

//variable is null at beggining
$rac=null;
SoapWrapper::add(function ($service) {
        $service
            ->name('test')
            ->wsdl('http://wdsl-link');
    });
$data = [
        'param' => '111111'
];
SoapWrapper::service('test', function ($service) use ($data) {
        $rac = $service->call('getSmth', [$data])->structure;
        //Tried with sleep so variable $rac can be assigned but no results
        //sleep(5); 
        //dd here works and i got my desired data
        //dd($rac);
    });
//dd don't work here and variable $rac is null
//dd($rac);
return view('pages/...',compact('rac'));

这与语法无关,而是我对处理soap响应的理解不好。所以,如果有人能告诉我如何得到回应,或者建议我使用其他与Laravel合作的肥皂库?

在当前代码中,有两个名称相同的变量$rac:

  • 第一个只对外开放
  • 第二个仅可用于内部封闭件

这就是为什么您的外部$rac在末尾为空的原因。对应用于第一个$rac变量的现有实例的闭包进行更改。将您的代码更改为:

SoapWrapper::service('test', function ($service) use ($data, &$rac) {
    // notice the $rac variable is included as reference in the `use`
    $rac = $service->call('getSmth', [$data])->structure;
});