Php laravel队列作业,分派两个参数
这是我的控制器Php laravel队列作业,分派两个参数,php,laravel,queue,jobs,Php,Laravel,Queue,Jobs,这是我的控制器 SmsAdsJob::dispatch('aaa','bbb'); 这是我的工作 protected $request; public function __construct($request) { $this->request = $request; } public function handle() { $clients=$this->request; lo
SmsAdsJob::dispatch('aaa','bbb');
这是我的工作
protected $request;
public function __construct($request)
{
$this->request = $request;
}
public function handle()
{
$clients=$this->request;
logger($clients);
}
这是记录器
local.DEBUG: aaa
问题是在控制器中我分配了两个值,但在作业中我得到了一个值,但在作业中我应该得到两个值,您能给出一些建议吗?您可以在数组或对象数据类型中传递参数。例如:
$params = ['aaa', 'bbb']
SmsAdsJob::dispatch( $params );
或:
当你传递给变量时,你应该考虑你的<强>作业类< /强>必须知道<强>多少个PARAM< <强> >你想要<强>接收< /强> .< /P> < P> SmsAdsJob在它的构造函数中应该有两个属性。然后你可以访问它们。我不明白你为什么在工作中使用“请求”
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class SmsAdsJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $a;
private $b;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($a,$b)
{
//
$this->a = $a;
$this->b = $b;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
echo $this->a,PHP_EOL;
echo $this->b,PHP_EOL;
}
}
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class SmsAdsJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $a;
private $b;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($a,$b)
{
//
$this->a = $a;
$this->b = $b;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
echo $this->a,PHP_EOL;
echo $this->b,PHP_EOL;
}
}