我正在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);
}
那么如何在不对框架进行更改的情况下实现这一目标呢?
答案 0 :(得分:2)
将第二个代码块中的方法复制到 ResetPasswordController 。这将覆盖使用它的控制器中的Trait方法。
通过这样做,您不会对Laravel框架进行更改,并且您的更改不会在下一个作曲家安装中丢失。