Skip to content

Enum type fatal error when passing the enum class in Symfony 7.2.3 #1663

Open
@d9beuD

Description

@d9beuD

I created a new Symfony 7.2.3 project in a dockerized environment and created a Task entity using make:entity command. I just added a title property.

Then I created a TaskStatus enum like so:

# src/Entity/Enum/TaskStatus.php
<?php

namespace App\Entity\Enum;

enum TaskStatus: int
{
    case Pending = 0;
    case Done = 1;
}

Then, using make:entity again, I edit my Task entity and fill the form:

 Class name of the entity to create or update (e.g. FierceKangaroo):
 > task

 Your entity already exists! So let's add some new fields!

 New property name (press <return> to stop adding fields):
 > status

 Field type (enter ? to see all types) [string]:
 > enum

 Enum class:
 > App\\Entity\\Enum\\TaskStatus

When I press enter, a fatal error is thrown:

Fatal error: Cannot declare enum App\Entity\Enum\TaskStatus, because the name is already in use in /var/www/src/Entity/Enum/TaskStatus.php on line 5
21:26:22 CRITICAL  [php] Fatal Compile Error: Cannot declare enum App\Entity\Enum\TaskStatus, because the name is already in use ["exception" => Symfony\Component\ErrorHandler\Error\FatalError^ { …}]

At this point, what I understand is that the enum cannot exists before I try to add it to my entity. But if I delete it and try again, it now says:

[ERROR] Class "App\\Entity\\Enum\\TaskStatus" doesn't exist; please enter an existing full class name.   

By the way, I use a php:8.3.17-apache docker image. How am I supposed to use the enum type in my entities? I found nothing in Symfony's docs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions