【问题标题】:Laravel 5.5 password reset success custom param not being passed throughLaravel 5.5密码重置成功自定义参数未通过
【发布时间】:2018-04-06 22:09:20
【问题描述】:

我创建了自己的视图,一旦密码成功重置,就会显示该视图。

我正在尝试将用户的电子邮件传递给此视图,因此我修改了处理重定向的 ResetPasswords 特征:

protected function sendResetResponse($response, $request)
    {
        return redirect($this->redirectPath())
                            ->with('status', trans($response))->with('email', $request->email);
    }

这应该将值传递给视图,我的视图文件 (reset-success.blade.php):

@extends('quarx-frontend::layout.master')

@section('content')

<div class="row raw-margin-top-72 text-center">

        <h1 class="text-center">Password successfully changed!</h1>

        {{ $email  }}

</div>

@stop

但我不断收到以下错误:

未定义变量:电子邮件(查看: C:\wamp\www\a-api\resources\views\auth\passwords\reset-success.blade.php)

【问题讨论】:

  • 您是否覆盖了 ResetPasswordController 中的 sendResetResponse?
  • 你不需要同时指定变量的类型... IE post or get?我上次 laraveled 已经有一段时间了,但我在想$request-&gt;input('email')
  • @Troyer 我没有覆盖,而是直接改成了这个$this-&gt;sendResetResponse($response, $request)
  • @Dale 我不需要在这里这样做,如果我在 sendResetResponse 函数内执行 dd($request-&gt;email);,我确实会收到电子邮件。
  • @user3574492 嗯,对了,就像我说的那样:)

标签: php laravel laravel-5


【解决方案1】:

看起来你正在直接覆盖特征,这是不正确的,你应该在你的 app/http/Controllers/Auth/ResetPasswordController.php 控制器中覆盖它;如果您直接在供应商文件夹中修改它,下次您进行作曲家更新/安装时,它将消失

只需将您的代码复制到那里,它应该可以工作:

protected function sendResetResponse($response, $request){
  return redirect($this->redirectPath())
       ->with(['email => $request->email, 'status' => trans($response)]);
}

那么您的更改不会受到作曲家安装/更新的影响。

【讨论】:

  • reset() 特征中的 reset() 方法怎么样。我也直接改了:$this-&gt;sendResetResponse($response, $request)?
  • 在安装/更新作曲家时,您在供应商文件夹中修改的所有内容都将消失,您需要在 Laravel 应用中覆盖它。
  • 将所有代码放入我的ResetPasswordController 后,我仍然收到Undefined variable: email
  • sendResetResponse 可以很好地获取请求变量,但只是没有将其传递给视图。
  • @user3574492 尝试将数据作为数组发送到一个 with()
猜你喜欢
  • 2018-05-24
  • 1970-01-01
  • 2018-12-30
  • 2018-10-18
  • 2018-07-25
  • 2018-11-19
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多