Kdyby\Doctrine\EntityRepository::findPairs PHP Метод

findPairs() публичный Метод

Fetches all records like $key => $value pairs
public findPairs ( array $criteria, string $value = NULL, array $orderBy = [], string $key = NULL ) : array
$criteria array parameter can be skipped
$value string mandatory
$orderBy array parameter can be skipped
$key string optional
Результат array
    public function findPairs($criteria, $value = NULL, $orderBy = [], $key = NULL)
    {
        if (!is_array($criteria)) {
            $key = $orderBy;
            $orderBy = $value;
            $value = $criteria;
            $criteria = [];
        }
        if (!is_array($orderBy)) {
            $key = $orderBy;
            $orderBy = [];
        }
        if (empty($key)) {
            $key = $this->getClassMetadata()->getSingleIdentifierFieldName();
        }
        $query = $this->createQueryBuilder('e')->whereCriteria($criteria)->select("e.{$value}", "e.{$key}")->resetDQLPart('from')->from($this->getEntityName(), 'e', 'e.' . $key)->autoJoinOrderBy((array) $orderBy)->getQuery();
        try {
            return array_map(function ($row) {
                return reset($row);
            }, $query->getResult(AbstractQuery::HYDRATE_ARRAY));
        } catch (\Exception $e) {
            throw $this->handleException($e, $query);
        }
    }

Usage Example

Пример #1
0
 public function findPairs($criteria, $value = NULL, $orderBy = array(), $key = NULL)
 {
     return $this->repository->findPairs($criteria, $value, $orderBy, $key);
 }
All Usage Examples Of Kdyby\Doctrine\EntityRepository::findPairs