Laravel更改密码重置响应

时间:2016-11-04 13:02:35

标签: php laravel

我正在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);
    }

那么如何在不对框架进行更改的情况下实现这一目标呢?

1 个答案:

答案 0 :(得分:2)

将第二个代码块中的方法复制到 ResetPasswordController 。这将覆盖使用它的控制器中的Trait方法。

通过这样做,您不会对Laravel框架进行更改,并且您的更改不会在下一个作曲家安装中丢失。