Laravel队列,从控制器获取参数

时间:2019-04-19 03:54:58

标签: laravel queue sendmail

我正在使用Laravel队列,我的问题是我没有从控制器传递参数。这是我的代码:

工作

protected $id;

public function __construct($id)
{
    $this->id = $id;
}

public function handle()
{    
    Log::info($this->id);
}

控制器

public function getAccept($id)
{
    $job = (new SendQueueMail($id))->delay(10);
    $this->dispatch($job);
}

我尝试了dd()函数,但仍然收到$ id。当我在上面的队列中运行时,我没有得到$ id。

laravel.log

  

[2019-04-19 09:54:22] local.INFO:

任何帮助,不胜感激!非常感谢!

3 个答案:

答案 0 :(得分:0)

控制器

use App\Jobs\SendQueueMail;

public function getAccept($id){

SendQueueMail::dispatch($id)
                ->delay(now()->addMinutes(10));

}

使用此功能可能对您有帮助

答案 1 :(得分:0)

这将为您提供帮助

public function getAccept($id)
{
    dispatch(new SendQueueMail($id));
}

答案 2 :(得分:0)

您做得正确,只需使用以下代码更新控制器

public function getAccept($id)
{
    $this->dispatch(new test($id))->delay(now()->addMinutes(10));
}