为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 只需要从第一个表中链接的第二个表获取数据

Laravel 只需要从第一个表中链接的第二个表获取数据

PHP
慕的地10843 2023-08-11 11:08:56
我有新闻表,大约有 5000 行,每行都有建筑物 id:public function building(){    return $this->belongsTo(\App\Building::class);}所以,建筑物有状态名称。我需要选择所有状态,但仅在任何文章具有该状态时才显示。我试过:$news->pluck('building.status')->unique()->filter()->toArray();它工作正常,但占用了大约 70MB 的内存。所以,这不适合我的情况。我找到了一个解决方案,看起来只需要 3mbNews::with(['building' => function($query){ $query->groupBy('status'); }])->get();但我只需要获取没有任何不同信息的状态,以防止 PHP 端进行过滤。我怎样才能得到它?也许有不同的方式?谢谢!
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

News::with('building')->get()->pluck('building.status')->unique()->values();

这称为预加载,因为我们必须指定相关关系来优化 SQL 查询。


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信