/** * Get an array with the values of a given column. * * @param string $column * @param string $key * @return array */ public function lists($column, $key = null) { $results = $this->query->lists($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 = array($column => $value); $value = $this->model->newFromBuilder($fill)->{$column}; } } return $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->lists($column, $key); } return parent::lists($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; }