Skip to content

Dingo response is encoding eloquent model three times #1063

Open
@thaonx

Description

@thaonx

https://github.com/dingo/api/blob/master/src/Http/Response.php#L174

    /**
     * {@inheritdoc}
     */
    public function setContent($content)
    {
        try {
            return parent::setContent($content);
        } catch (UnexpectedValueException $exception) {
            $this->original = $content;
            return $this;
        }
    }

https://github.com/dingo/api/blob/master/src/Http/Response.php#L80

public static function makeFromExisting(IlluminateResponse $old)
    {
        $new = static::create($old->getOriginalContent(), $old->getStatusCode());
        $new->headers = $old->headers;
        return $new;
    }

https://github.com/dingo/api/blob/master/src/Http/Response.php#L112

 public function morph($format = 'json')
    {
        $this->content = $this->getOriginalContent();
        ...
   }

If $content is a eloquent model instance, it will be encoded twice before it be overridden by transformer. Three times encoding for for each response, It is a big problem, right ?

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions