【问题标题】:Send copy of Laravel notification to admin将 Laravel 通知的副本发送给管理员
【发布时间】:2019-05-17 12:30:05
【问题描述】:

我正在开发一个模块,您可以在其中创建用户并将他们链接到特定的餐厅。创建用户时,餐厅的经理以及该餐厅的联系人(如果已设置)会收到一封邮件通知,其中包含新用户已创建并链接到该餐厅的消息。

现在我正在尝试实现下一个案例:发送通知时,所有添加的管理员电子邮件地址都需要使用相同的电子邮件通知,就像密件抄送一样。但是当我使用密件抄送并将通知发送给 2 个用户时,密件抄送也会发送两次。

由于我不能只将电子邮件地址添加到 Notification::send() 方法中,因此我无法在一行代码中实现这一点。我当前的通知:

Notification::send($users, new UserCreated($params));

我认为应该怎么做:

$emailAddresses = ['email1@test.com', 'email2@test.com']
Notification::send([$users, $emailAddresses], new UserCreated($params);

我怎样才能以正确的方式实现这一目标?

【问题讨论】:

  • 顺便说一句,Notification::send( 末尾缺少)
  • 您可以在$users 变量中再添加一个用户,不是吗?
  • @Tarasovych 是的,但管理员电子邮件并不总是用户对象,只是一个电子邮件地址
  • 最简单的方法可能是您使用这些电子邮件地址创建用户。您可以添加一个角色列,然后给他们一个“管理员”角色,这样就不必对这些电子邮件地址进行硬编码。
  • @DelenaMalan 不知道为什么我没有想到这一点,也许这确实是最好的解决方案。今天是星期五,我的大脑已经停止工作了^^

标签: php laravel notifications


【解决方案1】:

来自docs

按需通知

有时您可能需要向不知情的人发送通知 存储为应用程序的“用户”。使用 Notification::route 方法,您可以在之前指定 ad-hoc 通知路由信息 发送通知:

Notification::route('mail', 'taylor@example.com')
            ->route('nexmo', '5555555555')
            ->notify(new InvoicePaid($invoice));

所以,你可以试试这样的:

Notification::route('mail', 'email1@test.com')
            ->route('mail', 'email2@test.com')
            ->notify(new UserCreated($params));

route方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多