【问题标题】:Laravel: How to get the recipient (Notifiable) from within the Notification?Laravel:如何从通知中获取收件人(通知)?
【发布时间】:2018-10-24 09:25:05
【问题描述】:

我正在使用 Laravel 通知向用户广播更新。我想知道是否有办法从通知本身内部获取通知的 Notifiable 目标。

Auth::user()->notify(
new TextNotification('Hi there!')
)

现在,我想在 Notification 的 __construct 中获取 Notifiable 实例(这里是 User)。该对象是否会随时传递给通知?

我知道我可以将它传递给通知类,但我想知道 Laravel 是否已经这样做了。

【问题讨论】:

    标签: laravel notifications


    【解决方案1】:

    是的,您在 Notification 类中获得了 $notifiable 实例。

    更多详情请见this

    【讨论】:

    • 通知被传递给 ->via 和 ->toArray,但在 $this 中不可用(比如在通知的讲师内部),对吧?
    • ... 在通知的 __construct 中说
    • @Dewan159 不,你不会在 __construct 中获得 $notifiable。
    • 好的,这就是我想知道的,我认为 $notifiable 应该在通知的 $this 上可用,你不同意吗?
    【解决方案2】:

    在这种情况下,用户会自动插入到您发送的通知中,您可以在 toArray 和 toMail 方法中接受它。

    // in TextNotification
    public method toArray($notifiable)
    {
        // $notifiable is the $user from Auth::user()
    }
    

    【讨论】:

    • 是的,但我想知道我是否可以从构造中访问它,比如从 $this
    • 其他人其实已经回答了。我的问题是您为什么要在通知中获取用户实例?
    • @Borisu 一个原因是在broadcastOn()的频道中使用通知作为ID
    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    相关资源
    最近更新 更多