0

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

$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()但是在请求更新后尝试登录时,它显示错误。

4

3 回答 3

0

您可以使用合并方法:

$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]);

然后将新请求用于您的操作。

于 2020-11-06T14:39:01.393 回答
0

你可以尝试这样的事情:

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

于 2020-11-06T14:39:48.447 回答
0

创建 Request 实例的新变量并将先前请求变量中的电子邮件和密码分配给新变量对我有用。

$req = new Request([$request]);
$req['email']=$acc->email;
$req['password'] = $request->password;
于 2020-11-14T10:19:15.213 回答