将 return 数据传递给同一控制器中的另一个函数 laravel
Passing return data to another function in same controller laravel
尝试连接到外部 API。
在第一个功能中,我已经收到带有身份验证的令牌。
要发送 POST 请求,我需要将从第一个函数收到的 xtoken 作为第二个函数。
我不知道如何将值发送到第二个函数 (registerUser)
Route::get('/connect', 'Guzzlecontroller@registerUser')->name('registeruser');
这是我的路线文件
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use App\Http\Controllers\Auth\RegisterController;
class GuzzleController extends Controller
{
public function Gettoken()
{
$client = new \GuzzleHttp\Client();
$request = $client->get(
'http://api01.oriental-game.com:8085/token',
[
'headers' => [
'X-Operator' => 'mog189b',
'X-key' => 'sQxAVNaEMe0TCHhU',
]
]
);
$response = $request->getBody();
$tokenReturn = json_decode($response, true);
$xtoken = array("x-token:" . $tokenReturn['data']['token'],);
$this->registerUser($xtoken);
}
public function registerUser($xtoken)
{
$client = new \GuzzleHttp\Client();
$url = "http://api01.oriental-game.com:8085/register";
$request = $client->post($url, [
'headers' => $xtoken,
'body' => [
'username' => 'test1',
'country' => 'Korea',
'fullname' => 'test user1',
'language' => 'kr',
'email' => 'testuser1@test.com',
]
]);
$response = $request->send();
dd($response);
}
}
函数 App\Http\Controllers\GuzzleController::registerUser() 的参数太少,传递了 0 个,预期正好是 1 个
这是我遇到的错误。
请帮助我如何将 $xtoken 值发送到 registerUser 函数
问题是 Laravel 是直接调用 registerUser 而不是通过 getToken。因此令牌永远不会被检索并传递给注册操作。
而不是从 Gettoken()
调用 registerUser()
。拥有 Gettoken()
return 令牌并从 registerUser()
调用它
public function Gettoken()
{
...
return $xtoken;
}
public function registerUser()
{
$xtoken = $this->Gettoken();
...
}
尝试连接到外部 API。 在第一个功能中,我已经收到带有身份验证的令牌。 要发送 POST 请求,我需要将从第一个函数收到的 xtoken 作为第二个函数。 我不知道如何将值发送到第二个函数 (registerUser)
Route::get('/connect', 'Guzzlecontroller@registerUser')->name('registeruser');
这是我的路线文件
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
use App\Http\Controllers\Auth\RegisterController;
class GuzzleController extends Controller
{
public function Gettoken()
{
$client = new \GuzzleHttp\Client();
$request = $client->get(
'http://api01.oriental-game.com:8085/token',
[
'headers' => [
'X-Operator' => 'mog189b',
'X-key' => 'sQxAVNaEMe0TCHhU',
]
]
);
$response = $request->getBody();
$tokenReturn = json_decode($response, true);
$xtoken = array("x-token:" . $tokenReturn['data']['token'],);
$this->registerUser($xtoken);
}
public function registerUser($xtoken)
{
$client = new \GuzzleHttp\Client();
$url = "http://api01.oriental-game.com:8085/register";
$request = $client->post($url, [
'headers' => $xtoken,
'body' => [
'username' => 'test1',
'country' => 'Korea',
'fullname' => 'test user1',
'language' => 'kr',
'email' => 'testuser1@test.com',
]
]);
$response = $request->send();
dd($response);
}
}
函数 App\Http\Controllers\GuzzleController::registerUser() 的参数太少,传递了 0 个,预期正好是 1 个
这是我遇到的错误。 请帮助我如何将 $xtoken 值发送到 registerUser 函数
问题是 Laravel 是直接调用 registerUser 而不是通过 getToken。因此令牌永远不会被检索并传递给注册操作。
而不是从 Gettoken()
调用 registerUser()
。拥有 Gettoken()
return 令牌并从 registerUser()
public function Gettoken()
{
...
return $xtoken;
}
public function registerUser()
{
$xtoken = $this->Gettoken();
...
}