After upgrade from v2.13.1 to 2.13.2 got error with BackedEnum #7047

Open
opened 2026-01-22 15:43:39 +01:00 by admin · 0 comments
Owner

Originally created by @borodulin on GitHub (Sep 26, 2022).

Bug Report

Q A
BC Break yes/no
Version 2.13.2

Summary

#[ORM\Entity(repositoryClass: GoodsRepository::class)]
#[ORM\HasLifecycleCallbacks]
class Goods
{
    use IdTrait;
    use SoftDeleteTrait;
    use TimeAuditTrait;

    #[ORM\Column(type: 'uuid')]
    private Uuid $uuid;

    #[ORM\Column(type: 'string', enumType: ModerationStatusEnum::class)]
    private ModerationStatusEnum $moderationStatus;
}
class GoodsRepository extends EntityRepository
{
    /**
     * @return Goods[]
     */
    public function findWithoutItems(): array
    {
        return $this->createQueryBuilder('goods')
            ->leftJoin('goods.items', 'items')
            ->andWhere('items is null')
            ->getQuery()
            ->getResult();

        return $qb->getQuery()->getResult();
    }
}
[2022-09-26T10:06:58.461080+00:00] doctrine.DEBUG: Executing query: SELECT g0_.uuid AS uuid_0, g0_.name AS name_1, g0_.description AS description_2, g0_.moderation_status AS moderation_status_3, g0_.status AS status_4, g0_.base_currency AS base_currency_5, g0_.recurrent AS recurrent_6, g0_.id AS id_7, g0_.deleted_at AS deleted_at_8, g0_.created_at AS created_at_9, g0_.updated_at AS updated_at_10, g0_.store_id AS store_id_11 FROM goods g0_ LEFT JOIN goods_item g1_ ON g0_.id = g1_.goods_id WHERE g1_.id IS NULL {"sql":"SELECT g0_.uuid AS uuid_0, g0_.name AS name_1, g0_.description AS description_2, g0_.moderation_status AS moderation_status_3, g0_.status AS status_4, g0_.base_currency AS base_currency_5, g0_.recurrent AS recurrent_6, g0_.id AS id_7, g0_.deleted_at AS deleted_at_8, g0_.created_at AS created_at_9, g0_.updated_at AS updated_at_10, g0_.store_id AS store_id_11 FROM goods g0_ LEFT JOIN goods_item g1_ ON g0_.id = g1_.goods_id WHERE g1_.id IS NULL"} []
[2022-09-26T10:06:58.462528+00:00] doctrine.DEBUG: Rolling back transaction [] []
[2022-09-26T10:06:58.463758+00:00] console.CRITICAL: Error thrown while running command "'d:f:l'". Message: "App\Enum\ModerationStatusEnum::from(): Argument #1 ($value) must be of type string, App\Enum\ModerationStatusEnum given" {"exception":"[object] (TypeError(code: 0): App\\Enum\\ModerationStatusEnum::from(): Argument #1 ($value) must be of type string, App\\Enum\\ModerationStatusEnum given at /app/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ReflectionEnumProperty.php:93)","command":"'d:f:l'","message":"App\\Enum\\ModerationStatusEnum::from(): Argument #1 ($value) must be of type string, App\\Enum\\ModerationStatusEnum given"} []

Rollback to version 2.13.1 solves this problem.

Originally created by @borodulin on GitHub (Sep 26, 2022). ### Bug Report <!-- Fill in the relevant information below to help triage your issue. --> | Q | A |------------ | ------ | BC Break | yes/no | Version | 2.13.2 #### Summary ``` #[ORM\Entity(repositoryClass: GoodsRepository::class)] #[ORM\HasLifecycleCallbacks] class Goods { use IdTrait; use SoftDeleteTrait; use TimeAuditTrait; #[ORM\Column(type: 'uuid')] private Uuid $uuid; #[ORM\Column(type: 'string', enumType: ModerationStatusEnum::class)] private ModerationStatusEnum $moderationStatus; } ``` ``` class GoodsRepository extends EntityRepository { /** * @return Goods[] */ public function findWithoutItems(): array { return $this->createQueryBuilder('goods') ->leftJoin('goods.items', 'items') ->andWhere('items is null') ->getQuery() ->getResult(); return $qb->getQuery()->getResult(); } } ``` ``` [2022-09-26T10:06:58.461080+00:00] doctrine.DEBUG: Executing query: SELECT g0_.uuid AS uuid_0, g0_.name AS name_1, g0_.description AS description_2, g0_.moderation_status AS moderation_status_3, g0_.status AS status_4, g0_.base_currency AS base_currency_5, g0_.recurrent AS recurrent_6, g0_.id AS id_7, g0_.deleted_at AS deleted_at_8, g0_.created_at AS created_at_9, g0_.updated_at AS updated_at_10, g0_.store_id AS store_id_11 FROM goods g0_ LEFT JOIN goods_item g1_ ON g0_.id = g1_.goods_id WHERE g1_.id IS NULL {"sql":"SELECT g0_.uuid AS uuid_0, g0_.name AS name_1, g0_.description AS description_2, g0_.moderation_status AS moderation_status_3, g0_.status AS status_4, g0_.base_currency AS base_currency_5, g0_.recurrent AS recurrent_6, g0_.id AS id_7, g0_.deleted_at AS deleted_at_8, g0_.created_at AS created_at_9, g0_.updated_at AS updated_at_10, g0_.store_id AS store_id_11 FROM goods g0_ LEFT JOIN goods_item g1_ ON g0_.id = g1_.goods_id WHERE g1_.id IS NULL"} [] [2022-09-26T10:06:58.462528+00:00] doctrine.DEBUG: Rolling back transaction [] [] [2022-09-26T10:06:58.463758+00:00] console.CRITICAL: Error thrown while running command "'d:f:l'". Message: "App\Enum\ModerationStatusEnum::from(): Argument #1 ($value) must be of type string, App\Enum\ModerationStatusEnum given" {"exception":"[object] (TypeError(code: 0): App\\Enum\\ModerationStatusEnum::from(): Argument #1 ($value) must be of type string, App\\Enum\\ModerationStatusEnum given at /app/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ReflectionEnumProperty.php:93)","command":"'d:f:l'","message":"App\\Enum\\ModerationStatusEnum::from(): Argument #1 ($value) must be of type string, App\\Enum\\ModerationStatusEnum given"} [] ``` Rollback to version 2.13.1 solves this problem.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#7047