保存票证后,我需要向用户发送电子邮件,任何潜在客户我该怎么做? 这是我的商店功能
// Create Ticket
$ticket=new Ticket;
$ticket->userName= $request->input('userName');
$ticket->userEmail= $request->input('userEmail');
$ticket->phoneNumber= $request->input('phoneNumber');
$ticket->regular_quantity= $request->input('regular_quantity');
$ticket->vip_quantity= $request->input('vip_quantity');
$ticket->event_id=$request->route('id');
$ticket->total= $request->input('regular_quantity') + $request->input('vip_quantity');
$event = Event::find($ticket->event_id);
if ($ticket->regular_quantity < $event->regular_attendies && $ticket->vip_quantity < $event->vip_attendies) {
if($event->regular_attendies>0 && $event->vip_attendies>0){
DB::table('events')->decrement('regular_attendies', $ticket->regular_quantity);
DB::table('events')->decrement('vip_attendies', $ticket->vip_quantity);
Mail::send('emails.booking-enquiry', compact('request', 'user', 'data'), function($message) use ($request, $user, $data){
$message->from('matildamariwa3@@gmail.com');
$message->to($ticket->email);
$message->subject('Booking Enquiry');
});
$ticket->save();
}
}
else{
echo"no available space";
}
return redirect('/');
}
预订后,我需要发送电子邮件进行确认
答案 0 :(得分:0)
如果使用-> create()而不是-> save(),您将获得刚刚创建的票证模型的实例。然后,您可以在$ ticket-> create();
之后再写一封邮件答案 1 :(得分:0)
第一个$ticket->save();
应该在您发送邮件之前。然后,只有您应该向用户发送邮件。如果保存失败,用户会收到一封邮件,说明用户预订成功。但是另一方面,DB没有记录。
发送邮件的最佳方法是创建Event Listener。您可以找到this example which I found best among all the sites
只需调度event(new EventClass($event));
,即可在Listener上处理其余的事务,并且一切正常。