gpt4 book ai didi

php - 访问 Laravel Queued Job 的负载数据

转载 作者:行者123 更新时间:2023-12-02 04:35:26 25 4
gpt4 key购买 nike

如何从 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

....

我从 Job 类中获得了这些。但是payload()getRawBody()两者都返回 Call to undefined method

其他方法from that class do work - 例如,$this->release(1),所以我不确定 $this 是否引用了实际的作业类。

我正在使用 Redis 队列驱动程序,使用 Laravel 5.4。

最佳答案

之所以能够调用 $this->release() 方法是因为这是一个通过 trait 添加到 ProcessConversion 类中的方法InteractsWithQueue ( https://github.com/laravel/framework/blob/5.4/src/Illuminate/Queue/InteractsWithQueue.php#L57 )

您可以让您的类扩展抽象 Job 类 ( https://github.com/laravel/framework/blob/5.4/src/Illuminate/Queue/Jobs/Job.php ),这可能让您访问您希望的那些方法,但是,我找不到关于此的任何文档。

关于php - 访问 Laravel Queued Job 的负载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com