Laravel集合过滤以避免空记录

dev*_*234 3 php laravel eloquent

是否有一种内置的方式来循环集合并只返回满足特定条件的对象?

喜欢跳过所有的记录 $user->role === null

Hai*_*Ali 7

您可以使用filter方法根据您的情况过滤用户

$filteredUsers = $users->filter(function ($user, $key) {
    return $user->role != null;
});
Run Code Online (Sandbox Code Playgroud)


Tim*_*wis 6

->filter如果您正在使用,实际上甚至不需要该方法Eloquent.如果role是您的User模型的关系,您可以简单地调用:

$users = User::has("role")->get();
Run Code Online (Sandbox Code Playgroud)

这将自动仅返回具有a role或其中$user->role不为null的用户.