《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
高认可度评论:
谢邀,^____^。
在 EventServiceProvider 中注册 PasswordRest 的监听者。
运行 php artisan make:event,在新生成的 App\Listeners\ResetPassword 上编写逻辑:
我刚接触laravel,甚至php,对重写trait方法比较陌生,通过这一节既了解了重写trait方法,看了您的提问也颇受启发,仿照上一节利用事件实现。对于小白,这个教程很友好,在像您等高水平的学习者的提问里,我也受益匪浅,感谢大家为社区做出的贡献
写出你的代码
谢邀,^____^。
在 EventServiceProvider 中注册 PasswordRest 的监听者。
运行 php artisan make:event,在新生成的 App\Listeners\ResetPassword 上编写逻辑:
:+1:,作者可能是多提供一种方案吧,不过我也觉得事件会清晰
我觉得其实还是作者的方法更好一点
这个是教程,不一定是最优方案,前面已经用过事件了,这里再用事件,知识点就重复了。所以换一种。个人见解
@bibace 重写父类或者 trait 中的方法只是 php 中的基本知识点。你不觉得用事件后应用拓展性更强、逻辑更清晰?例如,应用还想实现邮件通知用户密码已更改的功能,我们往重写的方法中添加逻辑,会导致方法臃肿不堪,也破坏了 solid 设计原则。
@bibace 只有密码成功修改以后才会触发Password::Reset事件,因为这个事件发生以后,用户就会登录。
我刚接触laravel,甚至php,对重写trait方法比较陌生,通过这一节既了解了重写trait方法,看了您的提问也颇受启发,仿照上一节利用事件实现。对于小白,这个教程很友好,在像您等高水平的学习者的提问里,我也受益匪浅,感谢大家为社区做出的贡献
搞不懂,为什么就返回一个 ,密码重置成功也要做的这么麻烦, 这样对新手是不是太不友好了? 都搞不懂他们的关系,其实我发现不用重写 sendResetResponse() 方法也可以得到提示, 就是在原有的 sendResetResponse 方法上 写上 :
protected function sendResetResponse(Request $request, $response)
{
session()->flash('success', '密码更新成功,您已成功登录!');
return redirect($this->redirectPath())
->with('status', trans($response));
}
就是这里写上 提示修改成功, 一样可以得到大家想要的, 大家怎么看?
为什么 我运行你的那个 命令就没有 生成文件呢?
php artisan make:event ??? 没有
@jxdr 需要先在
EventServiceProvider
中写出,要生成的Event
和Listener
其实可以简化为
您这种方法确实更好一些,学到了! :+1:
事件确实处理是最好的方式,比如后期业务有变化,不使用session暂存改为发送邮件也是有可能的,慢慢对事件监听器了解一下了。我这里贴出我创建的监听器
1.使用命令创建监听器文件 php artisan make:listener ResetPassword
2.事件和监听器进行绑定
@softer 后期就密码被修改了就给用户发送一封密码被修改成功的风险通知邮件 这样的逻辑很常见 我也觉得事件的写法标准 作者应该是为了将 重载的方法 可以不改框架就 修改逻辑
我这里就改了密码长度验证规则
一样的重载