我已经尝试解决this和this的问题,最后,它们不能解决我的问题。
我像这样将作业添加到队列中
public function successPayment(Request $request){
$command = Command::findOrFail($request->reference);
if($command->state == Command::PENDING){
$command->state = Command::SUCCESS;
$command->payed_at = now();
if(!empty($oldCommandItem = session('renew_command')))
{
$commandItem = $command->items()->offers()->get()->first();
$commandItem->application_id = $oldCommandItem->application->id;
$commandItem->save();
$notification = $user->notifications->last();
$application = $commandItem->application;
RestoreApplicationJob::dispatch(['application'=>$application, 'notification'=>$notification]);
$next = route('application.show', $commandItem->application_id);
session()->forget('renew_command');
}
$command->save();
}
}
我的工作
class RestoreApplicationJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $datas;
public $tries = 1;
public function __construct($datas)
{
$this->datas = $datas;
}
public function handle()
{
try{
$application = $this->datas['application'];
$notification = $this->datas['notification'];
$application->activate();
$tmp_data = $notification->data;
$tmp_data['state'] = Opertation::SUCCESS;
$notification->data = $tmp_data;
$notification->save();
}catch(\Exception $e)
{
Log::error($e->getMessage());
Log::error($e->getTraceAsString());
$tmp_data = $notification->data;
$tmp_data['state'] = Opertation::FAILED;
$notification->data = $tmp_data;
$notification->save();
}
}
}
我遇到此错误:
不允许对“关闭”进行序列化
我检查了很多次,但是什么也没找到
谢谢您的帮助,对不起我的英语不好:)!
答案 0 :(得分:0)
我的问题太疯狂了...
这只是我在Job内将Opertation
的类称为Operation
。
抛出异常...