NilPortugues\Laravel5\JsonApi\Eloquent\EloquentHelper::columns PHP Method

columns() protected static method

protected static columns ( NilPortugues\Laravel5\JsonApi\JsonApiSerializer $serializer, array $fields ) : array
$serializer NilPortugues\Laravel5\JsonApi\JsonApiSerializer
$fields array
return array
    protected static function columns(JsonApiSerializer $serializer, array $fields)
    {
        $filterColumns = [];
        foreach ($serializer->getTransformer()->getMappings() as $mapping) {
            $classAlias = $mapping->getClassAlias();
            if (!empty($fields[$classAlias])) {
                $className = $mapping->getClassName();
                $aliased = $mapping->getAliasedProperties();
                /** @var \Illuminate\Database\Eloquent\Model $model * */
                $model = new $className();
                $columns = $fields[$classAlias];
                if (count($aliased) > 0) {
                    $columns = str_replace(array_values($aliased), array_keys($aliased), $columns);
                }
                foreach ($columns as &$column) {
                    $filterColumns[] = sprintf('%s.%s', $model->getTable(), $column);
                }
                $filterColumns[] = sprintf('%s.%s', $model->getTable(), $model->getKeyName());
            }
        }
        return count($filterColumns) > 0 ? $filterColumns : ['*'];
    }