一个关于队列的细节问题求助

1. 运行环境

linux

1). 当前使用的 Laravel 版本?

laravel8

2). 当前使用的 php/php-fpm 版本?

PHP 版本: 7.4

2. 问题描述?

 $models = OrderReview::with(['order_goods'=>function($query){
                                    $query->where('del',0)->select();
                                },'user_img_wed'=>function($query){
                                    $query->whereNull('deleted_at')->select()->groupBy('factory_url');
                                },'order_syn'=>function($query){
                                    $query->select(['id','shop_id','order_id','order_ate','taobao_id']);
                                }])->whereHas('order_syn',function (Builder $query) use ($v){
                                    $query->where('shop_id',$v);
                                })->withCount('user_img_wed')->where('review_type',2)->where('version',2)->where('order_review.created_at', '<', Carbon::now())->get();

上述代码会得到一个model。里面的关系因为where导致某些不满足的数据不会被查询。
但是进入队列的时候关系又被重载了。导致一些不要的数据又出来了

在任务处理时,Eloquent 模型及其加载的关系将被优雅地序列化和非序列化。如果你的队列任务在其构造函数中接受一个 Eloquent 模型,那么只有模型的标识符才会被序列化到队列中。当实际处理任务时,队列系统将自动重新从数据库中获取完整的模型实例及其加载的关系。它对你的应用程序来说是完全透明的,并且可以防止在序列化完整的 Eloquent 模型实例时可能出现的问题。

文档有这样一句话。
请问有没有什么办法让队列执行的时候不重新加载关系呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
leo
最佳答案

删掉 job 里的 use SerializesModels;

2年前 评论
讨论数量: 2
leo

删掉 job 里的 use SerializesModels;

2年前 评论
leo

删掉 job 里的 use SerializesModels;

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!