我对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世界中,创建一个服务提供者。你链接的文章很适合你想要做的事情。
如果你希望能够全局访问你的新邮件类,就像你可以使用Mail
和Request
以及任何其他熟悉的Laravel外观一样,你可以创建你自己的,它将在你的应用程序的任何地方可用。