Skip to content

Symfony Uuid identifiers causes binary query and 404 #3880

Closed
@akira28

Description

@akira28

API Platform version(s) affected: 2.6.0-alpha.1 with Symfony 5.2 on PHP 7.4

Description
Using Symfony Uid as identifier of a resource and executing a request on an item given an existing uuid, returns a 404 error caused by a query with binary data instead of string representation of the uuid

How to reproduce
resource example:

<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\IdGenerator\UuidV4Generator;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Uid\Uuid;

/**
 * @ORM\Entity()
 * @ORM\Table(name="invoices")
 * @ApiResource(
 *     normalizationContext={"groups"={"invoices"}},
 *     collectionOperations={"get"},
 *     itemOperations={"get"}
 * )
 */
class Invoice
{
    /**
     * @ORM\Id
     * @ORM\Column(type="uuid", unique=true)
     * @ORM\GeneratedValue(strategy="CUSTOM")
     * @ORM\CustomIdGenerator(class=UuidV4Generator::class)
     * @Groups({"invoices"})
     */
    private Uuid $id;

    /**
     * @ORM\Column(name="number", type="string")
     * @Groups({"invoices"})
     */
    private string $number;

    public function getId(): Uuid
    {
        return $this->id;
    }

    public function getNumber(): string
    {
        return $this->number;
    }
}

request example:
http://localhost/invoices/b282f366-bcae-44cf-b09c-d0569b9cdf9d

query produced:

SELECT i0_.id AS id_0, i0_.number AS number_1 FROM invoices i0_ WHERE i0_.id = 0xB282F366BCAE44CFB09CD0569B9CDF9D;

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions