Locker\Repository\Statement\EloquentIndexer::format PHP Method

format() public method

Formats statements.
public format ( Jenssegers\Mongodb\Eloquent\Builder $builder, IndexOptions $opts ) : [Model]
$builder Jenssegers\Mongodb\Eloquent\Builder
$opts IndexOptions
return [Model]
    public function format(Builder $builder, IndexOptions $opts)
    {
        // Determines the formatter to be used.
        $format = $opts->getOpt('format');
        if ($format === 'exact') {
            $formatter = function ($statement, $opts) {
                return $statement;
            };
        } else {
            if ($format === 'ids') {
                $formatter = function ($statement, $opts) {
                    return $this->formatter->identityStatement($statement);
                };
            } else {
                if ($format === 'canonical') {
                    $formatter = function ($statement, $opts) {
                        return $this->formatter->canonicalStatement($statement, $opts->getOpt('langs'));
                    };
                } else {
                    throw new Exceptions\Exception("`{$format}` is not a valid format.");
                }
            }
        }
        // Returns the models.
        return json_decode($builder->orderBy('stored', $opts->getOpt('ascending') === true ? 'ASC' : 'DESC')->skip($opts->getOpt('offset'))->take($opts->getOpt('limit'))->get()->map(function (Model $model) use($opts, $formatter) {
            return $formatter($this->formatModel($model), $opts);
        }));
    }