Ich versuche, den Enum-Typ innerhalb einer benutzerdefinierten DTO-Klasse zu validieren. Ich versuche, das Symfony-Attribut #[Assert\Choice] zu verwenden, aber es scheint, dass es nicht funktioniert, wenn ich einen falschen Wert übergebe.
Benutzerdefiniertes DTO:
Code: Select all
#[Assert\Choice(callback: 'getConditionTypes')]
public string $conditionType;
public static function getConditionTypes(): array
{
return array_column(ConditionType::cases(), 'name');
}
Enum-Klasse:
Code: Select all
enum ConditionType: string
{
case NEW = "NEW";
case USED = "USED";
case CRASHED = "CRASHED";
case BROKEN = "BROKEN";
case FOR_PARTS = "FOR_PARTS";
}
Wenn ich versuche, über Postman einen ConditionType mit einem falschen Wert zu übergeben, zum Beispiel „conditionType“: „rand“, passiert er das DTO ohne Probleme und ich versuche abzufangen, ob ein falscher Wert vorliegt. Was übersehe ich?