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;
    }
}