symfony3 - Est-il possible d'utiliser Symfony sans FormBuilder ?
天蓬老师2017-05-16 16:43:53
0
4
460
Pour les formulaires, pouvons-nous utiliser la page conçue pour l'imbrication ? Ou puis-je utiliser FormBuilder uniquement pour créer des formulaires ? Comment vérifier et traiter les données postées à partir d'une page écrite par moi-même ?
Je pense qu'il est préférable d'utiliser FormBuilder pour créer des formulaires
Il existe un jeton pour empêcher les attaques CSRF
Il est plus pratique d'obtenir des données en combinant des objets
La validation est plus pratique
Peut-être que lorsque vous le découvrirez pour la première fois, vous aurez peut-être l'impression que FormBuilder est un peu encombrant, mais une fois familiarisé avec lui, il semble assez facile à utiliser
Il est préférable d'utiliser ce qu'il fournit. En fait, quel que soit le type de mise en page que vous souhaitez, vous pouvez le personnaliser, vous pouvez modifier le thème du formulaire et vous pouvez personnaliser certains champs. Si vous le créez vous-même, vérifiez-le. toi-même!
Pour répondre d'abord aux deux premières questions, des formulaires très complexes peuvent bien sûr être créés à l'aide de pages conçues sur le front-end n'est pas nécessairement nécessaire.
La troisième question, @xxfaxy a dit que vous devez le vérifier vous-même. À mon avis, Symfony a fourni le composant Validation. Si vous utilisez Validation, je ne pense pas qu'il s'agisse d'une auto-vérification complète. Reportez-vous au site officiel de Symfony, faites défiler jusqu'à la fin de la page et consultez la section Validation des valeurs et des tableaux.
Je pense que même si le framework fournit de nombreuses fonctions, ces fonctions sont après tout universelles. Dans certains cas particuliers, ne vous laissez pas limiter par le framework.
En fait, le cœur de votre question est Comment mapper les données de publication (type Array) à l'entité (type Entity) .
Form est une abstraction des objets Entity et Request. C'est-à-dire qu'une fois le nom d'utilisateur de votre entité extrait par le composant Form, la sortie est similaire à <input name="entityName[property]" /> , où Property est la propriété (nom du champ) de votre entité. Lors de handleRequest, la valeur soumise par le front-end sera automatiquement mappée à la propriété property de l'entité. Vous pouvez comprendre que Form est destiné à rendre votre entité interactive .
Et si vous n’utilisez pas le composant Form ?
Symfony fournit également le composant Serializer qui peut également mapper un tableau à une entité :
Je pense qu'il est préférable d'utiliser FormBuilder pour créer des formulaires
Il existe un jeton pour empêcher les attaques CSRF
Il est plus pratique d'obtenir des données en combinant des objets
La validation est plus pratique
Peut-être que lorsque vous le découvrirez pour la première fois, vous aurez peut-être l'impression que FormBuilder est un peu encombrant, mais une fois familiarisé avec lui, il semble assez facile à utiliser
Il est préférable d'utiliser ce qu'il fournit. En fait, quel que soit le type de mise en page que vous souhaitez, vous pouvez le personnaliser, vous pouvez modifier le thème du formulaire et vous pouvez personnaliser certains champs. Si vous le créez vous-même, vérifiez-le. toi-même!
Pour répondre d'abord aux deux premières questions, des formulaires très complexes peuvent bien sûr être créés à l'aide de pages conçues sur le front-end n'est pas nécessairement nécessaire.
La troisième question, @xxfaxy a dit que vous devez le vérifier vous-même. À mon avis, Symfony a fourni le composant Validation. Si vous utilisez Validation, je ne pense pas qu'il s'agisse d'une auto-vérification complète. Reportez-vous au site officiel de Symfony, faites défiler jusqu'à la fin de la page et consultez la section Validation des valeurs et des tableaux.
Je pense que même si le framework fournit de nombreuses fonctions, ces fonctions sont après tout universelles. Dans certains cas particuliers, ne vous laissez pas limiter par le framework.
Tout à fait ok !
En fait, le cœur de votre question est Comment mapper les données de publication (type Array) à l'entité (type Entity) .
Form est une abstraction des objets Entity et Request. C'est-à-dire qu'une fois le nom d'utilisateur de votre entité extrait par le composant Form, la sortie est similaire à <input name="entityName[property]" /> , où Property est la propriété (nom du champ) de votre entité. Lors de handleRequest, la valeur soumise par le front-end sera automatiquement mappée à la propriété property de l'entité. Vous pouvez comprendre que Form est destiné à rendre votre entité interactive .
Et si vous n’utilisez pas le composant Form ?
Symfony fournit également le composant Serializer qui peut également mapper un tableau à une entité :
Votre page front-end :
Votre entité :
Mappez votre FORMULAIRE à des entités :
Certifiez une entité comme si vous utilisiez Form :
Référence : http://symfony.com/doc/current/components/serializer.html#deserializing-an-object