【发布时间】:2014-04-10 10:30:11
【问题描述】:
情况是这样的:
我有一个 laravel 应用程序,它在预订服务后会发送一封电子邮件。 我已经安装 Iron mq 来加快这个过程。
在发送邮件需要 8/10 秒之前,使用 Iron mq 将电子邮件排队需要大约 3 秒。
但我想提供即时反馈,即立即显示确认消息。
这是控制器(大约需要 3 秒):
$input = Input::all();
$validation = Validator::make($input, Registration::$rules, Registration::$messages);
if($validation->passes())
{
$registration->name = $input['name'];
$registration->email = $input['email'];
...
$registration->save();
$mailer = new Mailers\MailerRegistration();
$mailer->mailBooking($registration->name, $registration->email)->deliverRegistration();
return Redirect::back()->with('message','<b>Congratulations! You have succesfully sent the email');
问题是:
如何修改控制器以便立即提供反馈? 在检查是否通过验证后,我可以将重定向作为第一件事吗? 但是在这种情况下,我到底可以通过什么作为 RETURN 呢?
我有点困惑.. 希望你能帮助我!
【问题讨论】:
-
除非您愿意将注册过程推入队列并稍后处理,否则最直接的方法是执行 javascript 检查并在提交时向用户显示消息,然后使用javascript以ajax方式调用控制器url。
-
Laravel Mail Queue。使用队列发送并立即通知用户它已发送。
-
对不起,可能还不够清楚,已经安装了 Iron mq,我已经在排队发邮件了。但是操作仍然需要 3 秒,我想立即给出反馈。 @har2vey 您建议使用 js 显示消息?
-
是的,除非您想将整个注册推送到 Iron mq 并稍后处理它们,这会很麻烦,然后在 js 上进行验证然后从那里传递按摩,然后从 js 调用控制器作为好吧(你仍然需要在服务器端进行验证)。
-
实际上我已经进行了双重验证,在客户端使用 javascript,在服务器端使用 Laravel。你能告诉我如何用js制作确认信息吗?我会认为是正确答案
标签: php email laravel laravel-4 queue