我正在尝试将某个类名从控制器传递到作业文件
工作::dispatch($className);
我尝试将其作为字符串传递并将其作为 ClassName::class 传递,但这些方法都不起作用
Job 文件中的代码如下所示:
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class BreakUpArraysJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $products;
protected $jobName;
public function __construct($products, $jobName)
{
$this->products = $products;
$this->jobName = $jobName;
}
/**
* Execute the jobName.
*
* @return void
*/
public function handle()
{
$productArrays = array_chunk($this->products, 5000);
foreach($productArrays as $productArray){
$this->jobName::dispatch($productArray);
}
}
}
$jobname 变量是我要传递的类名。我还需要注意,我从控制器传递了不同作业的类名,我的意思是作业处理程序应该通过变量调用另一个作业。