Проверьте тип перехода с [#Assert \ Choice]Php

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

Сообщение Anonymous »

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

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

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

public static function getConditionTypes(): array
{
return array_column(ConditionType::cases(), 'name');
}
< /code>
enum class: < /p>
enum ConditionType: string
{
case NEW = "NEW";
case USED = "USED";
case CRASHED = "CRASHED";
case BROKEN = "BROKEN";
case FOR_PARTS = "FOR_PARTS";
}
Когда я пытаюсь передать ConditionType через почтальона с неправильным значением, например, «ConditionType»: «rand» он проходит через DTO без какой -либо проблемы, и я пытаюсь поймать, если есть неверное значение. Чего мне не хватает?

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

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

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

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

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

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