public function pluck($field, $indexField=null) {

        $fieldsFormat = $field;
        $usingFormatting = preg_match_all('/{(\w+\.\w+|\w+)}/', $field, $matches);

        //Obtención del campo/s de la consulta
        $fields = [];
        if ($usingFormatting) {
            $fields = $matches[1];
            foreach ($fields as $formatField) {
                if (($pos = strpos($formatField, '.')) !== false) {
                    $replaceFormatField = substr($formatField, $pos + 1);
                    $fieldsFormat = str_replace($formatField, $replaceFormatField, $fieldsFormat);
                }
            }
        }
        else {
            $fields = [$field];
        }

        //Establecer los campos del select
        $selectFields = $fields;
        if ($indexField != null && !in_array($indexField, $selectFields)) {
            $selectFields[] = $indexField;
        }
        $this->selectFields($selectFields);

        //Obtención del campo de indice
        $returnIndexField = $indexField;
        if (!empty($returnIndexField)) {
            if (($pos = strpos($returnIndexField, '.')) !== false) {
                $returnIndexField = substr($returnIndexField, $pos + 1);
            }
        }

        //Obtención de los campos de retorno
        $returnFields = [];
        foreach ($fields as $returnField) {
            if (($pos = strpos($returnField, '.')) !== false) {
                $returnField = substr($returnField, $pos + 1);
            }
            $returnFields[] = $returnField;
        }

        //Creación del array de resultados
        $fieldResults = [];
        $results = $this->find();
        foreach ($results as $result) {
            $value = null;
            if (!$usingFormatting) {
                $value = $result->{$returnFields[0]};
            }
            else {
                $value = $fieldsFormat;
                foreach ($returnFields as $returnField) {
                    $value = str_replace("{" . $returnField . "}", $result->$returnField, $value);
                }
            }

            if ($returnIndexField != null) {
                $fieldResults[$result->$returnIndexField] = $value;
            }
            else {
                $fieldResults[] = $value;
            }
        }
        return $fieldResults;
    }
public function pluck($field, $indexField=null) {

        $fieldsFormat = $field;
        $usingFormatting = preg_match_all('/{(\w+\.\w+|\w+)}/', $field, $matches);

        //Obtención del campo/s de la consulta
        $fields = [];
        if ($usingFormatting) {
            $fields = $matches[1];
            foreach ($fields as $formatField) {
                if (($pos = strpos($formatField, '.')) !== false) {
                    $replaceFormatField = substr($formatField, $pos + 1);
                    $fieldsFormat = str_replace($formatField, $replaceFormatField, $fieldsFormat);
                }
            }
        }
        else {
            $fields = [$field];
        }

        //Establecer los campos del select
        $selectFields = $fields;
        if ($indexField != null && !in_array($indexField, $selectFields)) {
            $selectFields[] = $indexField;
        }
        $this->selectFields($selectFields);

        //Obtención del campo de indice
        $returnIndexField = $indexField;
        if (!empty($returnIndexField)) {
            if (($pos = strpos($returnIndexField, '.')) !== false) {
                $returnIndexField = substr($returnIndexField, $pos + 1);
            }
        }

        //Obtención de los campos de retorno
        $returnFields = [];
        foreach ($fields as $returnField) {
            if (($pos = strpos($returnField, '.')) !== false) {
                $returnField = substr($returnField, $pos + 1);
            }
            $returnFields[] = $returnField;
        }

        //Creación del array de resultados
        $fieldResults = [];
        $results = $this->find();
        foreach ($results as $result) {
            $value = null;
            if (!$usingFormatting) {
                $value = $result->{$returnFields[0]};
            }
            else {
                $value = $fieldsFormat;
                foreach ($returnFields as $returnField) {
                    $value = str_replace("{" . $returnField . "}", $result->$returnField, $value);
                }
            }

            if ($returnIndexField != null) {
                $fieldResults[$result->$returnIndexField] = $value;
            }
            else {
                $fieldResults[] = $value;
            }
        }
        return $fieldResults;
    }
public function pluck ( $ field , $ indexField = null ) { $ fieldsFormat = $ field ; $ usingFormatting = preg_match_all ( '/{(\w+\.\w+|\w+)}/' , $ field , $ matches ) ; //Obtención del campo/s de la consulta $ fields = [ ] ; if ( $ usingFormatting ) { $ fields = $ matches [ 1 ] ; foreach ( $ fields as $ formatField ) { if ( ( $ pos = strpos ( $ formatField , '.' ) ) !== false ) { $ replaceFormatField = substr ( $ formatField , $ pos + 1 ) ; $ fieldsFormat = str_replace ( $ formatField , $ replaceFormatField , $ fieldsFormat ) ; } } } else { $ fields = [ $ field ] ; } //Establecer los campos del select $ selectFields = $ fields ; if ( $ indexField != null && ! in_array ( $ indexField , $ selectFields ) ) { $ selectFields [ ] = $ indexField ; } $ this -> selectFields ( $ selectFields ) ; //Obtención del campo de indice $ returnIndexField = $ indexField ; if ( ! empty ( $ returnIndexField ) ) { if ( ( $ pos = strpos ( $ returnIndexField , '.' ) ) !== false ) { $ returnIndexField = substr ( $ returnIndexField , $ pos + 1 ) ; } } //Obtención de los campos de retorno $ returnFields = [ ] ; foreach ( $ fields as $ returnField ) { if ( ( $ pos = strpos ( $ returnField , '.' ) ) !== false ) { $ returnField = substr ( $ returnField , $ pos + 1 ) ; } $ returnFields [ ] = $ returnField ; } //Creación del array de resultados $ fieldResults = [ ] ; $ results = $ this -> find ( ) ; foreach ( $ results as $ result ) { $ value = null ; if ( ! $ usingFormatting ) { $ value = $ result -> { $ returnFields [ 0 ] } ; } else { $ value = $ fieldsFormat ; foreach ( $ returnFields as $ returnField ) { $ value = str_replace ( "{" . $ returnField . "}" , $ result -> $ returnField , $ value ) ; } } if ( $ returnIndexField != null ) { $ fieldResults [ $ result -> $ returnIndexField ] = $ value ; } else { $ fieldResults [ ] = $ value ; } } return $ fieldResults ; }
Obtiene una columna de los resultados en un array
@param string $field campo a mostrar en un array
@param string $indexField campo a utilizar como indice
@return array resultado
Obtiene una columna de los resultados en un array