未定义的属性:Illuminate \ Queue \ Jobs \ BeanstalkdJob :: $ name

时间:2015-11-25 12:52:33

标签: php laravel laravel-4 task-queue beanstalkd

我使用 beanstalkd Laravel 对某些任务进行排队,但是我无法将数据发送到处理队列的函数,这里是我的代码

//Where I call the function 

$object_st = new stdClass(); 
$object_st->Person_id = 2 ;

//If I do this: echo($object_st->Person_id); , I get 2 

Queue::push('My_Queue_Class@My_Queue_Function', $object_st );

处理队列的函数如下

 public function My_Queue_Function( $Data )
{
    $Person_id = $Data->Person_id; //This generate the error 

    //Other code
}

错误说:

  

[ErrorException]
  未定义属性:Illuminate \ Queue \ Jobs \ BeanstalkdJob :: $ Person_id

1 个答案:

答案 0 :(得分:1)

4.2中队列的工作方式不同于5;处理队列任务的函数中的第一个参数实际上是一个队列作业实例,第二个参数是你的数据:

class SendEmail {

    public function fire($job, $data)
    {
        //
    }

}

根据documentation的例子。

因此,您的代码需要允许第一个参数:

public function My_Queue_Function( $job, $Data )
{
    $Person_id = $Data['Person_id'];

    //Other code
}