Laravel -邮件服务


Laravel - Mailer Service?

我对Laravel有点不熟悉,但我正在建立一个bug跟踪系统,并有一个关于如何删除多个发送邮件实例的问题。让我向您展示我目前是如何设置它的:

public function store(UsersRequest $request)
{
    $user = User::create($request->all());
    Mail::queue('emails.master', ['user' => $user], function($message) use ($user) {
    $message->to('someone@somewhere.com')
            ->subject('New User Created');
    });
    return redirect('/users');
}

我在控制器中有这个方法,它在我的系统中创建一个新用户,然后我发送邮件。我想做的是将邮件调用剥离为一行代码。

实现这一点的最佳方法是什么?

到目前为止,我发现的是设置一个服务来处理这个-像这样:http://lukefair.com/create-a-mailer-service-with-laravel-and-a-basic-working-example-of-dependency-injection/

这似乎是一个好主意,我的新手大脑,将实现我需要它。还有比创建服务更好的方法吗?也许会使用事件(尽管我想我仍然需要一个服务)?

就像我说的,我是一个Laravel新手,还没有掌握这些模式和做事的方法。

任何建议都会很好。谢谢!

解决此类问题的典型方法是,至少在Laravel世界中,创建一个服务提供者。你链接的文章很适合你想要做的事情。

如果你希望能够全局访问你的新邮件类,就像你可以使用MailRequest以及任何其他熟悉的Laravel外观一样,你可以创建你自己的,它将在你的应用程序的任何地方可用。