Lorsqu’on utilise le formulaire de contact par défaut de Sylius, celui-ci se contente d’envoyer un e-mail sans enregistrer les informations en base de données.
Dans le cadre d’un projet, j’ai eu besoin d’aller plus loin en sauvegardant les contacts du site pour un suivi ultérieur. Pour cela, j’ai créé une entité personnalisée dédiée aux contacts, ainsi qu’une administration pour gérer ces données directement depuis le back-office de Sylius.
Dans cet article, je vais vous détailler chaque étape de ce processus et partager quelques erreurs que vous pourriez rencontrer en chemin.
Pour cela, rien de plus simple avec MakerBundle :
bin/console make:entity Class name of the entity to create or update (e.g. GrumpyGnome): > Contact\Contact Mark this class as an API Platform resource (expose a CRUD API for it) (yes/no) [no]: > yes created: src/Entity/Contact/Contact.php created: src/Repository/Contact/ContactRepository.php Entity generated! Now let's add some fields! You can always add more fields later manually or by re-running this command. L’entité Contact et son repository ont ainsi été créées, rangées dans le dossier Contact pour rester bien organisées. J’ai ensuite ajouté les champs nécessaires (nom, email, message, date de création, etc.) à l’entité et mis en place un constructeur pour initialiser automatiquement la date de création lors de l’instanciation.
Pour enregistrer cette nouvelle entité dans la base de données, il faut d’abord générer un fichier de migration, puis l’appliquer :
bin/console make:migration bin/console doctrine:migrations:migrate À ce stade, l’entité est fonctionnelle et permet l’enregistrement de nouveaux objets en base de données. Bien que ce...
[Courte citation de 8% de l'article original]