首页 > 解决方案 > 我需要将用户信息从注册页面传递到 2 个不同的控制器

问题描述

当用户注册时,我还需要将注册字段值传递给其他控制器。这个其他控制器将信息发送到外部 api 作为注册其他网站的帖子。

我尝试用数据重定向,但我认为我完全迷路了。这是我的第二个控制器

public function registerUser()
    {
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, "http://api01.oriental-game.com:8085/register");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $this->xtoken);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
            "username" => "test2",
            "country" => "Korea",
            "fullname" => "Hihi User",
            "language" => "kr",
            "email" => "myuser123@test.com",
            "birthdate" => "1992-02-18"
        )));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $server_output = curl_exec($ch);
        curl_close($ch);
    }

当用户注册到我们的网站时,它会通过他们的注册API自动在我们自己的网站和其他2个网站上创建帐户。

在此先感谢您的帮助。

标签: laravelapicurlpost

解决方案


与其通过 HTTP 重定向从一个函数重定向到另一个函数,为什么不将表单数据从您的注册表单传递到一个/register-user路由,并在路由中相应的控制器方法在那里捕获表单数据。

您的表单将发布到类似这样的内容,因此请确保您有到第一个控制器的路线:

Route::get('/register-user', 'RegisterControllerNameHere@index');

在第一个控制器函数中调用第二个控制器中的 registerUser(),如下所示:

public function registerUser(Illuminate\Http\Request $request) {

(new \App\Http\Controllers\SecondControllerName)->registerUser($request>all());

}

还允许将参数传递给第二个控制器:

public function registerUser($userData) // add parameter 

现在$userData将具有与您可以传递给 API 调用的第一个控制器相同的数据。

这有助于回答您的问题吗?


推荐阅读