如何处理php

时间:2015-11-24 10:12:30

标签: php web-services soap laravel-5 laravel-5.1

我需要为我的应用程序使用soap调用,所以我在goravel中搜索了一些库并找到了一个:

Laravel SoapClient Wrapper

它没有记录很多,所以我有点卡住了。我已成功检索数据但无法在页面上显示,因为它是“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'));

这不是关于语法,而是关于处理肥皂反应的错误理解。那么,如果有人能告诉我如何得到这样的回应,或者可能会建议使用其他一些与Laravel合作的肥皂库吗?

1 个答案:

答案 0 :(得分:1)

使用当前代码,有两个名称相同的变量$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;
});