首页 > 解决方案 > 如何过滤 Laravel 集合

问题描述

我必须在我的函数中遵循雄辩的 db 语句。数据库上的两个读取语句。

$groups = V_Member::where('groupadmin', '=', Auth::id())->get();    
$members = V_Member::where([['idgroup', $groupid],['groupadmin', Auth::id()]])->get();

首先,我想执行第一个 db 语句,然后我想过滤集合/变量。像下面这样。但我得到一个错误。我必须改变什么?

$groups = V_Member::where('groupadmin', '=', Auth::id())->get();
$members = $groups::where(['idgroup', '=', $groupid])->get();

这是错误信息

不应静态调用非静态方法 Illuminate\Support\Collection::where()

标签: laraveleloquent

解决方案


如果您想过滤集合而不是运行 2 个查询,那么您只需要更改:

$members = $groups::where(['idgroup', '=', $groupid])->get();

至:

$members = $groups->where('idgroup', '=', $groupid);

有关更多信息,您可以查看文档


推荐阅读