首页 > 解决方案 > 如何计算角色=学习者的用户数?

问题描述

从这个集合中,我想计算并显示具有学习者角色的用户数量

array:7 [▼
  0 => array:21 [▶]
  1 => array:21 [▶]
  2 => array:21 [▶]
  3 => array:21 [▶]
  4 => array:21 [▼
    "id" => 5
    "name" => "Learner"
    "last_name" => "Learner"
    "email" => "learner@app.com"
    "email_verified_at" => null
    "phone" => "3427932821"
    "type" => null
    "avatar" => "default.jpg"
    "gender" => null
    "identity" => null
    "street" => null
    "suburb" => null
    "city" => null
    "province" => null
    "code" => null
    "school" => null
    "grade" => null
    "subjects" => null
    "created_at" => "2020-10-21T11:48:11.000000Z"
    "updated_at" => "2020-10-21T11:48:11.000000Z"
    "roles" => array:1 [▼
      0 => array:7 [▼
        "id" => 5
        "name" => "learner"
        "display_name" => "Learner"
        "description" => "Learner"
        "created_at" => "2020-10-21T11:48:11.000000Z"
        "updated_at" => "2020-10-21T11:48:11.000000Z"
        "pivot" => array:3 [▶]
      ]
    ]
  ]
  5 => array:21 [▶]
  6 => array:21 [▶]
]

这是我的用户控制器

public function index()
    {
      
        $users = User::with('roles')->orderBy('created_at', 'desc')->get();   

        return view('admin.users.index', compact('users'));
    }

我想在blade.php文件中显示统计结果...角色等于learner的用户数

标签: laravel

解决方案


考虑以下代码段;

count(array_filter($user, function ($elem) {
    $roles = $elem['roles'];
    return count(array_filter($roles, function ($role) {
        return 'learner' === $role['name'];
    })) > 0;
}));

推荐阅读