bonjour,
je veux ajouter un Customers dans la base de donnée voila mes classes :
CustomersType:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?php
namespace Customers\CustomerBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
 
class CustomersType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
 $builder
        ->add('name')
        ->add('adress')
        ->add('tel1')
        ->add('tel2')
        ->add('fax')
        ->add('email')
        ->add('matriculeFiscale')
        ->add('registreCommerce')
        ->add('managerName')
        ->add('managerTel')
        ->add('managerEmail')
        ->add('loginProvider')
        ->add('passwordProvider')
        ->add('login')
        ->add('password')
        ->add('ipAutorized') 
        ->add('idCategorie','entity', array('class'=>'data\baseBundle\Entity\Categories','property'=>'idCategorie', )); 
    }
 
    public function getName()
    {
        return 'Customers_CustomerBundle_Customers_Type';
    }
     public function getDefaultOptions(array $options)
    {
        return array(
            'data_class' => 'data\baseBundle\Entity\Customers',
        );
}
}
?>
CustomersHandler :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
<?php
 
namespace Customers\CustomerBundle\Form;
 
use Symfony\Component\Form\Form;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\ORM\EntityManager;
use data\baseBundle\Entity\Customers;
use data\baseBundle\Entity\Categories;
use Symfony\Component\HttpFoundation\Response;
 
class CustomersHandler
{
    protected $form;
    protected $request;
    protected $em;
 
    public function __construct(Form $form, Request $request, EntityManager $em )
    {
        $this->form    = $form;
        $this->request = $request;
        $this->em      = $em;
 
    }
 
    public function process()
    { 
        if( $this->request->getMethod() == 'POST' )
        { 
            $this->form->bindRequest($this->request);
 
            if( $this->form->isValid())
            {   return new Response("Hello World !");
                $this->onSuccess($this->form->getData());
 
                return true;
            }
        }
 
        return false;
    }
 
    public function onSuccess(Customers $Customers)
    {  
        $Customers->setDateCreation(new \DateTime());
        $this->em->persist($Customers);
        $this->em->flush();
    }
}
?>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
<?php
 
namespace Customers\CustomerBundle\Controller;
 
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use data\baseBundle\Entity\Customers;
use Customers\CustomerBundle\Form\CustomersType;
use Customers\CustomerBundle\Form\CustomersHandler;
class CustomersController extends Controller
{
 
 
public function ajouterAction()
 
{
   $Customers = new Customers;
   $form = $this->createForm(new CustomersType, $Customers);
    // On crée le gestionnaire pour ce formulaire, avec les outils dont il a besoin
   $formHandler = new CustomersHandler($form, $this->get('request'), $this->getDoctrine()->getEntityManager());
 
    // On exécute le traitement du formulaire. S'il retourne true, alors le formulaire a bien été traité
        if( $formHandler->process() )
        {
             return $this->render('CustomersCustomerBundle::test.html.twig');
        }
 
     return $this->render('CustomersCustomerBundle::ajouter.html.twig',array(
        'form' => $form->createView(),)
         );
     }
}
 
?>
le probléme que l'exécution ne traverse pas la condition
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 if( $this->form->isValid())
            {   return new Response("Hello World !");//pour le test
                $this->onSuccess($this->form->getData());
 
                return true;
            }
aucun erreur n'est survenue mais l'ajout dans la base ca marche pas,
avez vous une aide?
merci d'avance.