2015-11-25 5 views
1

Я использую 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('[email protected]_Queue_Function', $object_st); 

И функция, обрабатывать очередь следующие

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

    //Other code 
} 

ошибка говорит:

[ErrorException]
Не определено свойство: Осветите \ Queue \ Вакансии \ BeanstalkdJob :: $ person_id

ответ

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 
} 
+0

Должен ли я держать называть его таким образом 'Queue :: толчок ('My_Queue_Class @ My_Queue_Function', $ object_st);' @Luceos – ikuchris

+0

да первый аргумент автоматически добавляется – Luceos

+1

Спасибо, он работает, когда я использую '$ Person_id = $ Data ['Person_id'];' не '$ Person_id = $ Data-> Person_id;' Вы должны подумать о том, чтобы обновить свой ответ, чтобы он помог другим в будущем – ikuchris

Смежные вопросы