moh*_*abk 4 laravel laravel-5 lumen
我正在使用Lumen
并想知道如何传递data
到我的job
班级。我的job
课程如下;
<?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');
});
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个函数将作业推送到队列中;
public function emailTest () {
$data = ['user' => $user];
Queue::push(new TestEmailJob);
}
Run Code Online (Sandbox Code Playgroud)
我如何传递$data
和接收它并在job
课堂上使用它?
您可以通过传递给构造函数来实例化变量
class TestEmailJob extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue;
protected $data;
public function __construct($data)
{
$this->data = $data;
}
public function handle()
{
// $this->data;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以从控制器中调用它,如下所示:
$this->dispatch(new TestEmailJob($data));
http://laravel.com/docs/5.1/queues#writing-job-classes