/** * Get an array with the values of a given column. * * @param string $column * @param string|null $key * @return \Illuminate\Support\Collection */ public function pluck($column, $key = null) { $results = $this->query->pluck($column, $key); // If the model has a mutator for the requested column, we will spin through // the results and mutate the values so that the mutated version of these // columns are returned as you would expect from these Eloquent models. if ($this->model->hasGetMutator($column)) { foreach ($results as $key => &$value) { $fill = [$column => $value]; $value = $this->model->newFromBuilder($fill)->{$column}; } } return collect($results); }
/** * Get an array with the values of a given column. * * @param string $column * @param string $key * @return array */ public function lists($column, $key = null) { if ($key == '_id') { $results = new Collection($this->get([$column, $key])); // Convert MongoId's to strings so that lists can do its work. $results = $results->map(function ($item) { $item->_id = (string) $item->_id; return $item; }); return $results->pluck($column, $key)->all(); } return parent::pluck($column, $key); }
/** * Alternative pluck to stay backwards compatible with Laravel 5.1 LTS. * * @param Builder $query * @param $column * @param null $key * @return array|mixed */ public static function pluckOrLists(Builder $query, $column, $key = null) { if (\Illuminate\Foundation\Application::VERSION < '5.2') { $result = $query->lists($column, $key); } else { $result = $query->pluck($column, $key); } return $result; }