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

Get index filters
public getIndices ( ) : array
Результат array
Пример #1
0
 /**
  * Create a query against a table matching one or more indices
  *
  * @param IndexedQuery $query
  * @param bool         $use_cache
  * @return QueryResult
  */
 public function indexedQuery(IndexedQuery $query, $use_cache = true)
 {
     $metadata = $this->getMapper()->getEntityMetadata($query->getClassName());
     $prefix = $this->getKeyScheme()->getEntityKey($metadata->getTableName(), '');
     $prefix_len = strlen($prefix);
     $master_list = null;
     foreach ($query->getIndices() as $index_name => $index_key) {
         if ($index_name == '@id') {
             $key = $this->getKeyScheme()->getEntityKey($metadata->getTableName(), $index_key);
             $set = $this->getDriver()->scan($key);
             $results = [];
             foreach ($set as $search_key) {
                 $results[] = substr($search_key, $prefix_len);
             }
         } else {
             $index = $metadata->getIndexByName($index_name);
             if (!$index) {
                 throw new InvalidArgumentException('Index "' . $index_name . '" does not exist on the entity');
             }
             $key = $this->getKeyScheme()->getIndexKey($index, $index_key);
             $set = $this->getDriver()->scan($key);
             $results = [];
             foreach ($set as $search_key) {
                 $results[] = $this->getDriver()->getSingleValueIndex($search_key);
             }
         }
         if ($master_list === null) {
             $master_list = $results;
         } else {
             $master_list = array_intersect($master_list, $results);
         }
     }
     return new QueryResult($this->entity_manager, $query, array_values($master_list), null, $use_cache);
 }