laravel - 我需要将用户信息从注册页面传递到 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个网站上创建帐户。
在此先感谢您的帮助。
解决方案
与其通过 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 调用的第一个控制器相同的数据。
这有助于回答您的问题吗?
推荐阅读
- sql - 根据sql中的条件创建新列?
- centos - systemd 不执行 ExecStop 脚本
- swift - 滑块值更改时快速更新表格中的单元格数
- c - 任何人都可以建议我为这种模式提供更好/更短的方法吗?
- c# - 不必要的类实例化重复
- opengl - OpenGL:在计算着色器中旋转lookAt相机轴
- javascript - .then 总是返回一个 promise 对象,如何将结果保存在变量中?
- tfs - TF.exe 标签 - 为服务器项创建标签时需要工作区映射?
- javascript - 将数据添加到div时如何自动滚动到底部
- java - 如果其中存在数字零,则将二维数组中的一行归零