0

好的,我正在尝试记录并发送电子邮件通知/确认记录已记录。我在 Players 模型和 Lessonhours 模型之间有多对多的关系。User 模型与 Players 模型是一对多的。我已经运行了我的“商店”方法,并进行了几次不同的修改,最后我收到了要发送的电子邮件。问题是我无法获取现有的玩家数组并向每个玩家发送电子邮件。我的表单中的多项选择已正确插入各自的表格中。在收集电子邮件数据时,我最接近以下代码。THIS 的问题在于,当他们存在时,我只能获得一名球员,而不是两名或更多球员。我希望这是有道理的。截图如下。

$request 数组的代码和截图: $request 对象的代码和 dd()。

dd($request->players)

查询后,未捕获玩家数组。

不捕获玩家数组 dd($players)

向 $request 对象添加索引的代码

尝试添加索引后出现错误消息。

球员型号: 球员模型

我对此不是很有经验,我发现很难确定要使用哪个文档示例。插入记录后如何获取所有要发送的电子邮件地址?我感谢提供的所有帮助。

课时模型: 课时模型

商店课时表格 课时表格

用户模型 在此处输入图像描述

4

1 回答 1

0

我不确定你为什么将数组放在数组 forwhereIn子句中,但如果请求玩家已经作为数组通过,那么你应该能够做到:

whereIn('id', $request->players)

接下来你只会发送一封电子邮件,因为你是从循环内部返回的,所以它将向第一个玩家发送一封电子邮件,然后返回回复。要保存一个您不再使用的临时变量,您可以执行以下操作:

Players::with('users')->whereIn('id', $request->players)->get()
    ->each(function ($player) use ($lesshours) {
        Mail::to($player->users)->send(new ThankYouForLessonPackagePurchase($lesshours));
    });

return back()->with(['success' => 'Player is enrolled in new Lesson Package.']);

您不必执行上述操作,这只是另一种编写方式。

最后,如果您总是需要发送玩家 ID,那么您不妨将其添加到验证数组中:

'players    => 'required',
'players.*' => 'exists:players,id',

希望这可以帮助!

于 2017-01-02T09:48:26.953 回答