You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel模型方法中如何传递完整User对象?

解决Laravel User模型中传递完整User对象到重置密码通知的问题

嘿,这个问题其实很好解决!你之所以在sendPasswordResetNotification里用$user会失效,是因为这个方法是User模型的实例方法——当这个方法被调用时,你已经处于某个具体的User对象上下文里了,直接用$this就能指代当前的完整User对象,不需要额外声明$user变量。

而你在booted的creating回调里能正常用$user,是因为这个变量是Laravel框架作为参数传递给闭包函数的,和实例方法的上下文完全不一样。

修改后的代码应该是这样的:

public function sendPasswordResetNotification($token) {
    $message = new UserForgotPassword($this, $token);
    // 别忘了这里通常还要调用通知的发送方法,比如:
    // $this->notify($message);
}

这样UserForgotPassword通知类就能接收到完整的User对象了,你可以在通知类里直接使用这个对象的所有属性和方法。

内容的提问来源于stack exchange,提问作者eskimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:48:10