Laravel 将对象传递给模型中的方法

在我的用户模型中我可以这样做:


public function sendPasswordResetNotification($token)

{

  $message = (new UserForgotPassword($this->email, $this->name, $token));

}

但我怎样才能传递完整的User对象呢?


public function sendPasswordResetNotification($token)

{

  $message = (new UserForgotPassword($user, $token));

}

使用$user不起作用,但它确实适用于:


protected static function booted()

{

  static::creating(function ($user) {

    $user->uuid = Str::uuid();

  });

}


心有法竹
浏览 90回答 2
2回答

30秒到达战场

只需使用这个即可,$message = (new UserForgotPassword($this, $token));

慕姐4208626

用于$this访问 User 模型内的 User 实例(以非静态方法)。public function sendPasswordResetNotification($token){   $message = (new UserForgotPassword($this, $token)); }注意:如果您的方法是静态方法,您将使用static(或self) 而不是$this。另外,在您给出的示例中,$user实际上并不是booted方法中的变量。它是传递给方法的闭包(匿名函数)的参数created。
打开App,查看更多内容
随时随地看视频慕课网APP