Код: Выделить всё
#[ORM\Column(type: 'string', length: 255)]
private ?string $pattern = null;
#[ORM\Column(name: 'sub_pattern', type: 'string', length: 255)]
private ?string $subPattern = null;
Код: Выделить всё
->add('pattern', ChoiceType::class, [
'label' => 'contact.form.pattern.title',
'choices' => PatternEnum::getChoicesToString(),
'required' => true,
])
->add('subPattern', ChoiceType::class, [
'label' => 'contact.form.sub_pattern.title',
'required' => true,
])
Код: Выделить всё
public static function getChoicesToString(): array
{
return array_combine(
array_map(fn ($case) => $case->value, self::cases()),
array_map(fn ($case) => $case->value, self::cases())
);
}
Код: Выделить всё
public function fetchSubMotifsByMotif(Request $request, TranslatorInterface $translator): JsonResponse
{
$jsonPattern = $request->getContent();
$pattern = json_decode($jsonPattern, true);
if (!$pattern) {
return new JsonResponse(['error' => 'Le motif est obligatoire'], Response::HTTP_BAD_REQUEST);
}
try {
$subPatterns = match ($pattern['patternValue']) {
PatternEnum::AFTER_SALES_SERVICE->value => SubPatternEnum::getByAfterSalesService(),
PatternEnum::DELIVERY_INFORMATION->value => SubPatternEnum::getByDepositInformation(),
PatternEnum::PRODUCT->value => SubPatternEnum::getByAvailableProduct(),
PatternEnum::ORDER_TRACKING->value => SubPatternEnum::getByOrderTracking(),
PatternEnum::OTHER_REQUESTS->value => SubPatternEnum::getByOtherRequests(),
PatternEnum::TECHNICAL_PROBLEMS->value => SubPatternEnum::getByTechnicalProblems(),
default => throw new \InvalidArgumentException(\sprintf('Valeur inconnue: %s',$pattern)),
};
} catch (\Exception $e) {
return new JsonResponse(['error' => $e->getMessage()], Response::HTTP_BAD_REQUEST);
}
$formattedSubPatterns = [];
foreach ($subPatterns as $key => $value) {
$formattedSubPatterns[] = [
'value' => $value,
'label' => $translator->trans($value)
];
}
return new JsonResponse([
'success' => true,
'data' => [
'subPatterns' => $formattedSubPatterns
],
]);
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -symfony-6
Мобильная версия