我正在使用SendGrid SMTP通过我的网站发送邮件。我还使用SendGrid事件webhook来记录所有打开/点击/跳出。
SendGrid在其内部信息中心跟踪唯一的打开,我想向用户显示相同的信息。
模式
------------------------------------------
userId | emailId | msg_email | event|
------------------------------------------
1 | 27898 | test@test.com | open |
基本上,我需要找到所有记录:
活动==“开放”
其中userId == $ userId
为每个emailId计算不同的msg_email。
我完全陷入困境,但我认为解决这个问题的方法是运行一个查询来抓取userId的所有电子邮件,并使用event ==“open”。通过emailId对它们进行分组。
$query = EmailStats::where('userId', '=', $userId)
->where('event', '=', 'open')
->groupBy('emailId')
->get();
然后遍历每个组并获取不同电子邮件地址的计数。
我无法弄清楚如何遍历每个“群组”以找到不同的电子邮件地址。
我应该考虑另一种方法吗?
答案 0 :(得分:0)
Laravel有一个Collection方法“Unique”来做到这一点。我找到它后非常容易:
>>> new_dict['time'][0]
[1]