Laravelジョブクラス内からペイロードにアクセスするにはどうすればよいですか?Laravel待ちジョブのペイロードデータにアクセス
私が試してみました:
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\PDF;
class ProcessConversion implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
protected $pdf;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(PDF $pdf)
{
$this->pdf = $pdf;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$payload = $this->payload(); //undefined method
$payload = $this->payload; //undefined property
$payload = json_decode($this->getRawBody(), true); //undefined method
....
私は仕事クラスからこれらを得ました。しかし、payload()とgetRawBody()はともにCall to undefined method
です。
その他の方法from that class do work - たとえば$this->release(1)
なので、$this
が実際のジョブクラスを参照しているかどうかはわかりません。
私はLaravel 5.4を使用してRedisキュードライバを使用しています。
'payload()'メソッドからどのようなことを期待していますか?通常、 'PDF'クラスで行ったように、コンストラクタを介して必要なデータを渡します。 – James