/** * Get count of users * * @param int $roleId * @param array $search * @param array $deniedRoles * @return int */ public function getCount($roleId = null, array $search = null, array $deniedRoles = []) { $params = []; $sql = Table\Users::sql(); $sql->select(); if (null !== $search) { $sql->select()->where($search['by'] . ' LIKE :' . $search['by']); $params[$search['by']] = $search['for'] . '%'; } if (null !== $roleId) { $sql->select()->where('role_id = :role_id'); $params['role_id'] = $roleId; } if (count($deniedRoles) > 0) { foreach ($deniedRoles as $key => $denied) { $sql->select()->where('role_id != :role_id' . ($key + 1)); $params['role_id' . ($key + 1)] = $denied; } } if (count($params) > 0) { return Table\Users::execute((string) $sql, $params)->count(); } else { return Table\Users::findAll()->count(); } }