Ldap\Connection: Add method fetchPairs()

This commit is contained in:
Johannes Meyer 2015-06-23 15:05:47 +02:00
parent ac7a7e6674
commit 759e243d90
1 changed files with 36 additions and 0 deletions

View File

@ -169,6 +169,42 @@ class Connection implements Selectable
return $values;
}
public function fetchPairs(Query $query, array $fields = null)
{
if ($fields === null) {
$fields = $query->getColumns();
}
if (count($fields) < 2) {
throw new ProgrammingError('You are required to request at least two attributes');
}
$columns = $desiredColumnNames = array();
foreach ($fields as $alias => $column) {
if (is_int($alias)) {
$columns[] = $column;
$desiredColumnNames[] = $column;
} else {
$columns[$alias] = $column;
$desiredColumnNames[] = $alias;
}
if (count($desiredColumnNames) === 2) {
break;
}
}
$results = $this->fetchAll($query, $columns);
$pairs = array();
foreach ($results as $row) {
$colOne = $desiredColumnNames[0];
$colTwo = $desiredColumnNames[1];
$pairs[$row->$colOne] = $row->$colTwo;
}
return $pairs;
}
public function hasDN($dn)
{
$this->connect();