【问题标题】:Passing return data to another function in same controller laravel将返回数据传递给同一控制器 laravel 中的另一个函数
【发布时间】:2019-07-20 04:19:51
【问题描述】:

尝试连接到外部 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 guzzle


    【解决方案1】:

    问题是 Laravel 是直接调用 registerUser 而不是通过 getToken。所以令牌永远不会被检索并传递给注册操作。

    而不是从Gettoken() 调用registerUser()。让Gettoken() 返回令牌并从registerUser() 调用它

    public function Gettoken()
    {
        ...
    
        return $xtoken;
    }
    
    public function registerUser()
    {
        $xtoken = $this->Gettoken();
    
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 1970-01-01
      • 2021-09-22
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多