我正在使用Laravel 5.5创建一个简单的队列来调整上传的图像。我无法弄清楚如何将参数传递给队列,例如图像的临时文件位置。我的同事使用旧版本的Laravel,其中字符串可以传递给作业,例如:
$this->dispatch(new ExampleJob($foo));
但是,在Laravel 5.5中以相同的方式传递字符串,例如:
ExampleJob::dispatch($foo);
将触发'BindingResolutionException'异常,因为它期望模型序列化。
如果是这种情况,我该如何传递其他内容?
答案 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;
}
}