Laravel:检索后通过唯一列值过滤Eloquent Collections


Laravel : Filtering Eloquent Collections by unique column value after retrieval

从laravel文档中我们知道,在从数据库检索后,我们可以通过应用过滤器来过滤Eloquent集合:

$users = $users->filter(function($user)
{
    return $user->isAdmin();
});

有人知道我们是否可以通过一个不是主键的唯一列/属性来过滤集合吗?

已编辑:假设我有一列slug,并且我希望根据不同的slug值筛选集合,并在此过程中删除重复项。

我知道这是旧的,但你可以尝试这样的东西:

$existingSlugs = [];
$users = $users->filter(function($user) use (&$existingSlugs)
{
    $duplicate = in_array($user->slug, $existingSlugs);
    if(!$duplicate) {
        $existingSlugs[] = $user->slug;
    }
    return !$duplicate;
});