Adldap\Models\Traits\HasMemberOfTrait::getGroups PHP Method

getGroups() public method

If a recursive option is given, groups of groups are retrieved and then merged with the resulting collection. https://msdn.microsoft.com/en-us/library/ms677099(v=vs.85).aspx
public getGroups ( array $fields = [], boolean $recursive = false ) : Collection
$fields array
$recursive boolean
return Illuminate\Support\Collection
    public function getGroups($fields = [], $recursive = false)
    {
        $dns = $this->getAttribute($this->getSchema()->memberOf());
        $dns = is_array($dns) ? $dns : [];
        $query = $this->getQuery()->newInstance();
        $groups = $query->newCollection($dns)->map(function ($dn) use($query, $fields) {
            return $query->select($fields)->findByDn($dn);
        })->filter(function ($group) {
            return $group instanceof Group;
        });
        if ($recursive) {
            // If recursive results are requested, we'll ask each group
            // for their groups, and merge the resulting collection.
            foreach ($groups as $group) {
                $groups = $groups->merge($group->getGroups($fields, $recursive));
            }
        }
        return $groups;
    }