Laravel项目如何修改注册及忘记密码邮件中的$passwordResetUrl变量
Laravel项目错误密码重置链接排查修改路径
- 第一步:先检查当前找到的
app/mail/WelcomeDogSchoolManager.php文件本身
Laravel的邮件类(Mailable)的公共变量一般都是在类的__construct构造方法中赋值的,打开该文件后直接搜索$passwordResetUrl关键字,就能看到这个变量是在当前文件内拼接生成,还是由外部调用方传入参数赋值:- 如果是当前文件内拼接的URL,直接修正多出来的
.即可 - 如果是外部传参的,继续往下排查
- 如果是当前文件内拼接的URL,直接修正多出来的
- 第二步:查找邮件类的调用位置
注册触发的邮件一般在两个位置调用:- 注册控制器:路径为
app/Http/Controllers/Auth/RegisterController.php,搜索WelcomeDogSchoolManager关键字,找到实例化该邮件类的代码,就能看到$passwordResetUrl的拼接逻辑,修正多写的.即可 - 事件监听器:如果项目用Laravel事件机制触发邮件,先看
app/Providers/EventServiceProvider.php里的$listen数组,找Registered事件对应的监听器类,再到app/Listeners/目录下找到对应监听器文件,即可找到URL拼接逻辑
- 注册控制器:路径为
- 第三步:检查配置/环境变量(如果拼接逻辑是读取配置生成的)
如果拼接URL的时候用了env()或者config()方法读取域名配置,需要额外检查两个位置:- 项目根目录下的
.env文件,搜索DOMAIN或者相关域名配置项,看配置值是否多了开头的. config/目录下的配置文件,一般是config/app.php或者自定义的配置文件,看对应的域名配置是否格式错误
- 项目根目录下的
- 额外注意:如果服务器开启了Laravel配置缓存,修改完后删除项目根目录下
bootstrap/cache/config.php文件,配置就会生效,不需要额外操作
内容的提问来源于stack exchange,提问作者Jaap
相关产品推荐
相关产品推荐

