如何将参数传递给队列?

时间:2017-11-21 12:59:49

标签: php laravel laravel-5.5

我正在使用Laravel 5.5创建一个简单的队列来调整上传的图像。我无法弄清楚如何将参数传递给队列,例如图像的临时文件位置。我的同事使用旧版本的Laravel,其中字符串可以传递给作业,例如:

$this->dispatch(new ExampleJob($foo));

但是,在Laravel 5.5中以相同的方式传递字符串,例如:

ExampleJob::dispatch($foo);

将触发'BindingResolutionException'异常,因为它期望模型序列化。

如果是这种情况,我该如何传递其他内容?

1 个答案:

答案 0 :(得分:1)

类似的东西在Laravel 5.7和Laravel 5.5中对我有效...

ExampleJob::dispatch($foo);

然后类和构造函数看起来像这样...

<?php

class ExampleJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $foo;

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

    public function handle()
    {
        $bar = $this->foo;
    }
}