Formulaire et CRUD Symfony3


Dans ce tutoriel nous allons voir comment générer un formulaire , ajouter un objet à la base de données grâce à l'entity manager  et enfin nous allons voir comment générer un CRUD(create ,read ,update , delete) et manipuler une entité sans avoir besoin d’écrire les codes des fonctions.

           
Vous trouvez ci dessous les parties de code que j'ai écrit dans le tutoriel.
Commande pour générer PlatType.php


php bin/console doctrine:generate:form RestoBundle:Plat

ajoutPlat.html.twig
{% extends'RestoBundle::base.html.twig' %}
{%block body%}
<div class="container form-ajout">
    <div class="row">
        <div class="col-lg-12 col-md-6 col-lg-offset-3 col-md-offset-3 col-sm-12 col-xs-12">
            {{form_start(form)}} {{form_widget(form)}}
            <input class="btn btn-success" type="submit" value="Ajouter" /> {{form_end(form)}}
        </div>
    </div>
</div>
{%endblock%}

PlatController.php
<?php
namespace RestoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use RestoBundle\Entity\Plat;
class PlatController extends Controller
{
    public function ajoutAction(Request $request)
    {    $plat=new Plat();
    $form=$this->createForm('RestoBundle\Form\PlatType',$plat);
    $form->handleRequest($request);
    if($form->isSubmitted() && $form->isValid()){
        $em=$this->getDoctrine()->getManager();
        $em->persist($plat);
        $em->flush($plat);
    return $this->render('RestoBundle::ajoutPlat.html.twig',array(
        'plat'=>$plat,
        'form'=>$form->CreateView(),
    )) ;   
}}

Route ajout_plat dans le fichier Ressources/config/routing/routing.yml

ajout_plat:
    path:     /ajout-plat
    defaults: { _controller: RestoBundle:Plat:ajout }

Commande pour generate crud:
php bin/console doctrine:generate:crud RestoBundle:Reservation


Ajouter le chemin de reservation.yml dans le fichier routing.yml
reservation_path:
    resource:   "@RestoBundle/Resources/config/routing/reservation.yml"
    prefix: /reservation

Commentaires