laravel - 将返回数据传递给同一控制器 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。所以令牌永远不会被检索并传递给注册操作。
而不是registerUser()
从Gettoken()
. 已Gettoken()
返回令牌并从中调用它registerUser()
public function Gettoken()
{
...
return $xtoken;
}
public function registerUser()
{
$xtoken = $this->Gettoken();
...
}
推荐阅读
- gensim - gensimsimilar_by_word 函数中的相似度得分是多少?
- micronaut - Micronaut 的命令行运行程序
- string - 用户输入以在字典中查找单词
- php - PHP JSON:从兄弟姐妹参考中获取价值
- ubuntu - Security Onion (Ubuntu 16.04) syslog-ng 到多个来源
- recursion - 在球拍中编写交替系列检查器
- php - 通过护照在本地工作但不在服务器中的身份验证
- android - Logcat 和 toast 的 RxJava onNext 方法
- python-3.x - 如果两列相等,如何删除重复项
- python - 如何在熊猫中查找一定范围内的值的计数?