Подтвердите тип перечисления с помощью [#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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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