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
相关产品推荐
相关产品推荐

