我如何很好地解码Laravel失败的工作JSON
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何很好地解码Laravel失败的工作JSON相关的知识,希望对你有一定的参考价值。
我应该如何解码和“美化”Laravel失败的工作有效载荷?
在我的数据库表中failed_jobs我有列有效负载,如下所示:
{"job":"Illuminate\Queue\CallQueuedHandler@call","data":{"commandName":"App\Jobs\createHostingOncPanel","command":"O:30:"App\Jobs\createHostingOncPanel":7:{s:10:"u0000*u0000orderNo";i:11;s:18:"u0000*u0000hostingPackages";s:45:"[{"domainName":"qwddqwd.io","hostingType":1}]";s:7:"u0000*u0000user";O:45:"Illuminate\Contracts\Database\ModelIdentifier":2:{s:5:"class";s:8:"App\User";s:2:"id";i:1;}s:10:"connection";N;s:5:"queue";N;s:5:"delay";N;s:6:"u0000*u0000job";N;}"}}
想把字符串json解码成可读的东西。
这是什么样的格式? :)
PS:这是一个Laravel 5.2版本
答案
从failed_jobs表中读取
json_decode来自failed_jobs表的有效负载
$jsonpayload = json_decode($payload);
反序列化有效负载命令
$data = unserialize($jsonpayload->data->command);
print_r($data);//This is the data passed to queue
另一答案
我建议处理事件,然后以自己的方式存储您需要的任何数据。您可以使用失败的作业事件来捕获所有失败的作业:https://laravel.com/docs/master/queues#failed-job-events
或者您可以在作业本身使用failed()
函数:https://laravel.com/docs/master/queues#dealing-with-failed-jobs
否则,Marc的评论似乎对我有意义。
另一答案
试试这个
$j = AppModelsJobs::select('payload')->get();
$aw = json_decode($j[0]->payload)->data->command;
$cm = unserialize($aw);
dd($cm->payload);
以上是关于我如何很好地解码Laravel失败的工作JSON的主要内容,如果未能解决你的问题,请参考以下文章