Maintenant que nous avons sécurisé l'espace admin, nous allons créer un formulaire d'ajout de pizzas.
Lecture recommandée: la documentation officielle de Symfony.com sur les formulaires
Pour créer un formulaire: lancez:
symfony console make:form
Ce qui générera une classe du type:
// Forms/PizzaType.php
namespace App\Forms;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class PizzaType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('price')
->add('description')
->add('ingredients')
;
}
public function getName()
{
return 'pizza_form';
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'App\Entity\Pizza',
]);
}
}
Ici, nous décrivons un type de formulaire qui correspond à la classe de l'entité Pizza
de notre bundle.
Nous ajoutons alors nos champs, notez que nous ne précisons nullement leur type, il sera deviné par Symfony.
A l'aide de la documentation officielle et de cette classe, créez un formulaire servant à créer une pizza dans l'espace administrateur.
Lorsque le formulaire est soumis et valide, insérez alors la Pizza
ainsi créée dans la base
de données à l'aide de Doctrine.
Remarquez que les labels sont mis en place par défaut par Symfony en utilisant le nom du champ concerné (qui est anglais ici). A l'aide de la documentation, modifiez les.
Une champ caché en plus apparaîtra dans votre formulaire "...token
", de quoi s'agit t-il?
Notez que les champs ne sont pas stylisés par notre feuille de style, pour cela, vous pouvez utiliser depuis Symfony 2.6 le thème bootstrap pour les formulaires. Activez-le dans votre application.