PhysicalCardOrderType
extends AbstractType
in package
Formulaire de commande d'une carte physique associée à une carte de visite virtuelle.
Alimente l'entité PhysicalCard : la carte virtuelle associée (EntityType sur
BusinessCardAize, choix restreints à virtual_cards), le produit du catalogue commandé
(EntityType sur Card, choix restreints à card_products) et l'adresse de livraison
(obligatoire). Les champs customizationMode (« standard » ou « custom »),
designChoice (« model » ou « custom »), customFrontImageFile, customBackImageFile et
logoFile ne sont pas mappés ('mapped' => false) : ce sont des données de pilotage
d'interface ou des fichiers dont le traitement est laissé au contrôleur appelant. Le champ
cardModel (EntityType sur CardModel, choix restreints à card_models) reste facultatif
tant que l'utilisateur n'a pas choisi le mode « personnaliser » avec un design de type modèle.
Les champs printOption et colorOption (EntityType sur CardPrintOption et
CardColorOption) ne sont pas ajoutés statiquement : un listener PRE_SET_DATA (édition) et un
listener PRE_SUBMIT (soumission) les ajoutent dynamiquement une fois le produit choisi connu,
avec un query_builder restreignant les choix aux options actives de ce produit
(IDENTITY(o.card) = :cardId) ; sans produit connu, la requête ne retourne aucun résultat
(1 = 0). Le listener PRE_SUBMIT rend en outre logoFile, frontText et backText
obligatoires si customizationMode vaut « custom », et rend customFrontImageFile /
customBackImageFile obligatoires si designChoice vaut également « custom », ou cardModel
obligatoire si designChoice vaut « model ».
Options personnalisées attendues par configureOptions() : virtual_cards, card_models et
card_products (tableaux de choix, vides par défaut), is_first_pro_order (booléen, active un
mode « première carte pro offerte » qui ajoute le choix « Standard » et présélectionne
default_pro_card) et default_pro_card (instance de Card ou null).
Table of Contents
Methods
- buildForm() : void
- configureOptions() : void
Methods
buildForm()
public
buildForm(FormBuilderInterface $builder, array<string|int, mixed> $options) : void
Parameters
- $builder : FormBuilderInterface
- $options : array<string|int, mixed>
configureOptions()
public
configureOptions(OptionsResolver $resolver) : void
Parameters
- $resolver : OptionsResolver