Pour créer un formulaire qui n’est pas lié à un modèle, il suffit simplement de créer une classe dérivant de sfForm dans le répertoire : lib/form/doctrine.
Ensuite, vous déclarez le formulaire dans l’action et vous l’affichez dans le template.
Symfony propose un manuel détaillé sur les formulaires 1.2 ici :
Formulaires symfony 1.2
Le principal exemple est la création d’un formulaire de contact qui n’est pas stocké en base de données, et donc qui n’a pas de modèle ni de formulaire généré.
Classe formulaire
Définition des widgets et des validators.
Action
Déclaration du formulaire.
ex :
$this->form = new ContactForm(); |
Template
Affichage.
ex :
<form action="<?php echo url_for('contact/index') ?>" method="post"> <input type="submit" /> </form> |
Partagez cet article
Tweeter
Pour mes classes persos de formulaire, je préfère les mettre dans « lib/form » plutôt que dans « lib/form/doctrine » vu qu’elles n’ont aucun lien avec Doctrine.
Autre astuce, dès que tu ajoutes quelque chose dans le dossier « lib », il te faut faire un clear-cache pour que Symfony le prenne en compte (si mes souvenirs du workshop sont bons ^^).
Bonne idée Jérémy B, de la même façon on peut créer un répertoire lib/form/backend/ pour stocker les formulaire liés au back office.