更改请求参数(电子邮件),然后在Laravel中验证用户



我需要更改请求参数,即电子邮件,然后尝试使用新电子邮件登录。我正在尝试:

$user_handle = $request->email;
$gook = Gookarma::where('handle', '=', $user_handle)->firstOrFail();
$acc = Account::find($gook->karmable_id);
$request->email = $acc->email;

if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}

但它不会更新请求,登录尝试将按照以前的电子邮件字段输入进行。我从API调出的上一封电子邮件。

我尝试使用request->all(),但在请求更新后尝试登录时,会显示错误。

你可以试试这样的东西:

$request->merge(['email' => $acc->email]);

您可以使用合并方法:

$request->merge([
'email' =>$acc->email,
]);

或者你可以构建一个数组来替换整个请求输入,比如:

$arrayToReplace=$request->all();
$arrayToReplace['email']=$acc->email;

然后使用替换方法:

$request->replace($arrayToReplace);

如果以上两种方法都不起作用,请尝试向自己提出请求:

$array=$request->all();
$array['email']=$acc->email;
$req = new Request([$array]);

然后使用新请求进行操作。

创建一个请求实例的新变量,并将上一个请求变量中的电子邮件和密码分配给新变量,这对我来说很有效。

$req = new Request([$request]);
$req['email']=$acc->email;
$req['password'] = $request->password;

相关内容

最新更新