我正在 Laravel 5.3 中构建一个 API,我必须在重置密码时更改默认响应。
那么在不更改框架的情况下,我将如何做到这一点。我想要的是:
在我的 ResetPasswords
特征中位于 \Illuminate\Foundation\Auth\ResetPasswords
默认响应是:
/**
* Get the response for a successful password reset.
*
* @param string $response
* @return \Illuminate\Http\Response
*/
protected function sendResetResponse($response)
{
return redirect($this->redirectPath())
->with('status', trans($response));
}
/**
* Get the response for a failed password reset.
*
* @param \Illuminate\Http\Request
* @param string $response
* @return \Illuminate\Http\Response
*/
protected function sendResetFailedResponse(Request $request, $response)
{
return redirect()->back()
->withInput($request->only('email'))
->withErrors(['email' => trans($response)]);
}
我想要的是:
/**
* Get the response for a successful password reset.
*
* @param string $response
* @return \Illuminate\Http\Response
*/
protected function sendResetResponse($response)
{
return response()->json(['success' => trans($response)]);
}
/**
* Get the response for a failed password reset.
*
* @param \Illuminate\Http\Request
* @param string $response
* @return \Illuminate\Http\Response
*/
protected function sendResetFailedResponse(Request $request, $response)
{
return response()->json(['error' => trans($response)], 401);
}
那么如何在不更改框架的情况下实现这一目标呢?
最佳答案
将第二个代码块中的方法复制到您的 ResetPasswordController。这将在使用它的 Controller 中覆盖 Trait 的方法。
通过这样做,您不会对 Laravel 框架进行更改,并且您的更改不会在下一次安装 composer 时丢失。
关于php - Laravel 更改密码重置响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40423393/