Подтвердите тип перечисления с помощью [#Assert\Choice]Php

Кемеровские программисты php общаются здесь
Anonymous
Подтвердите тип перечисления с помощью [#Assert\Choice]

Сообщение Anonymous »

Я пытаюсь проверить тип перечисления внутри специального класса DTO. Я пытаюсь использовать атрибут Symfony #[Assert\Choice], но кажется, что он не работает, если я передаю неправильное значение.
Пользовательский DTO:

Код: Выделить всё

#[Assert\Choice(callback: 'getConditionTypes')]
public string $conditionType;

public static function getConditionTypes(): array
{
return array_column(ConditionType::cases(), 'name');
}
Класс Enum:

Код: Выделить всё

enum ConditionType: string
{
case NEW = "NEW";
case USED = "USED";
case CRASHED = "CRASHED";
case BROKEN = "BROKEN";
case FOR_PARTS = "FOR_PARTS";
}
Когда я пытаюсь передать ConditionType через Postman с неправильным значением, например «conditionType»: «rand», он проходит через DTO без каких-либо проблем, и я пытаюсь уловить неправильное значение. Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/765 ... ert-choice

Вернуться в «Php»