Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 4:如何在发送电子邮件后立即提供反馈?_Php_Email_Laravel_Laravel 4_Queue - Fatal编程技术网

Php Laravel 4:如何在发送电子邮件后立即提供反馈?

Php Laravel 4:如何在发送电子邮件后立即提供反馈?,php,email,laravel,laravel-4,queue,Php,Email,Laravel,Laravel 4,Queue,情况就是这样: 我有一个laravel应用程序,它在预订服务后会发送一封电子邮件。 我已经安装了Iron mq以加快进程 在发送邮件需要8/10秒之前,使用Iron mq将电子邮件排队大约需要3秒 然而,我想立即给出反馈,这意味着立即显示确认消息。 这是控制器,大约需要3秒钟: $input = Input::all(); $validation = Validator::make($input, Registration::$rules, Registrati

情况就是这样:

我有一个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');
问题是:

如何修改控制器以立即提供反馈? 在检查验证是否通过后,我是否可以将重定向作为第一件要做的事情? 但在这种情况下,我最终能传递什么作为回报呢

我有点困惑。。
希望你能帮助我

现在您使用的是安全方法,即:验证,保存模型,然后通知,如果时间紧迫,请使用验证通知,然后保存模型,但是如果存储模型失败,您需要处理它,请选择首选方法,您可以重新创建模型或通知用户,或者做任何出于创造性的事情来处理这种情况


这种方法背后的原因是,每次您访问数据库或模型层时,都需要一定的延迟,如果您在通知之前通知,那么您将延迟推到通知之后

,除非您愿意将注册过程推到队列中,然后再处理它们,尽管不安全,但最直接的方法是执行javascript检查并在提交时向用户显示消息,然后使用javascript以ajax方式调用控制器url。。使用队列发送,并立即通知用户已发送。抱歉,可能不够清楚,已经安装了Iron mq,并且我正在将电子邮件排入队列。但是做这个手术仍然需要3秒钟,我想立即给出反馈@har2vey您建议使用js?Yep显示一条消息,除非您想将整个注册推送到iron mq并在以后处理它们,这会很麻烦,然后在js上进行验证更简单,然后在从js调用控制器之前传递消息,您仍然需要在服务器端进行验证。实际上,我已经进行了双重验证,在客户端使用javascript,在服务器端使用Laravel。你能告诉我如何用js发送确认信息吗?我会考虑正确答案谢谢你的回答。我试着做一些类似的事情,把重定向::返回->与'消息','祝贺你!您已成功发送电子邮件';就在验证通过之后。但是我不知道如何关闭函数,传递什么作为返回..我希望我的回答对上一个问题有用,关于新的问题我真的不明白你在这里想做什么。。。如果你把它作为一个新问题发布,那会更好。。