将数据传递到邮件 Job/Queue - Lumen/Laravel
Pass data to Mail Job/Queue - Lumen/Laravel
我正在使用 Lumen
,想知道如何将 data
传递给我的 job
class。
我的 job
class 如下所示;
<?php
namespace App\Jobs;
use App;
use Illuminate\Contracts\Mail\Mailer;
class TestEmailJob extends Job
{
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle(Mailer $mailer)
{
//
$data; // I want to pass this from my function
$mailer->queue('emails.emailtemplate', $data , function ($message) {
$message->from('support@xxx.com', 'Laravel');
$message->to('xxx@gmail.com')->cc('xxx@yahoo.co.uk');
});
}
}
然后我有一个函数可以将作业推送到队列中;
public function emailTest () {
$data = ['user' => $user];
Queue::push(new TestEmailJob);
}
如何传递 $data
并接收它并在 job
class 中使用它?
您可以通过传递给构造函数来实例化变量
class TestEmailJob extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue;
protected $data;
public function __construct($data)
{
$this->data = $data;
}
public function handle()
{
// $this->data;
}
}
现在在 Controller 中,您可以这样调用它:
$this->dispatch(new TestEmailJob($data));
我正在使用 Lumen
,想知道如何将 data
传递给我的 job
class。
我的 job
class 如下所示;
<?php
namespace App\Jobs;
use App;
use Illuminate\Contracts\Mail\Mailer;
class TestEmailJob extends Job
{
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle(Mailer $mailer)
{
//
$data; // I want to pass this from my function
$mailer->queue('emails.emailtemplate', $data , function ($message) {
$message->from('support@xxx.com', 'Laravel');
$message->to('xxx@gmail.com')->cc('xxx@yahoo.co.uk');
});
}
}
然后我有一个函数可以将作业推送到队列中;
public function emailTest () {
$data = ['user' => $user];
Queue::push(new TestEmailJob);
}
如何传递 $data
并接收它并在 job
class 中使用它?
您可以通过传递给构造函数来实例化变量
class TestEmailJob extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue;
protected $data;
public function __construct($data)
{
$this->data = $data;
}
public function handle()
{
// $this->data;
}
}
现在在 Controller 中,您可以这样调用它:
$this->dispatch(new TestEmailJob($data));