Я нашел решение этой проблемы, которое у меня было. Обратите внимание, что я новичок в Laravel, но свободно владею PHP.
Из маршрутов / web.php
Route::any('/server', 'SoapController@callServer');
Route::get('/client', function() {
$params = array(
'location' => 'http://localhost/soap/public/server'
,'uri' => 'urn://localhost/soap/public/server'
,'trace' => 1
);
$client = new \SoapClient(null, $params);
$id_array = array('id' => '1');
echo $client->__soapCall('getStudentName', $id_array);
});
Из SoapController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Server;
class SoapController extends Controller
{
public function callServer() {
$params = array('uri' => 'soap/public/server');
$server = new \SoapServer(null, $params);
$server->setClass('App\Server');
$server->handle();
}
}
Из приложения / Server.php
namespace App;
class Server {
public function getStudentName($id_array) {
return 'Student Name';
}
}
Когда я запускаю http://localhost/soap/public/server,, он работает нормально. Но когда я запускаю http://localhost/soap/public/client Laravel выдает ошибку «неизвестный статус».
Только строка __soapCall () выдает ошибку. Параметры были успешно переданы в функцию.
Пожалуйста, помогите.