Bonjour,

Voila je rencontre un petit problème avec mon code.

j ai crée 3 entity USERS,USERS_EMPLOYEE,USERS_WEB;
ainsi que 2 bundle un principale appelé CORE avec une vue accueil et l action qui va avec .
et un second bundle appelé ConnectUsers .
Dans ma vue acccueil (accueil.html.twig) je souhaite avoir un rendu du controleur present dans le bundle ConnectUsers
jusque la rien de compliqué .
Sauf que la vue en question est un formulaire de l'entity USERS.
Donc dans mon controller du bundle ConnectUsers j'ai le code suivant:

<?php

namespace Vendor\ConnectUsersBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Vendor\ConnectUsersBundle\Entity\Users;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;

class UsersController extends Controller
{
    public function indexAction()
    {
        return $this->render('VendorConnectUsersBundle:Default:compte.html.twig');

    }
    public function connexionAction(Request $request)
    {
        $session=$request->getSession();
        $users=new Users();
        $form = $this->createFormBuilder($users)
            ->add('email', TextType::class)
            ->add('password', PasswordType::class)
            ->add('save', SubmitType::class, array('label' => 'connection'))
            ->getForm();

        $form->handleRequest($request);       

        //if ($request.isMethod('POST'))
        if($form->isValid())
        {
            $users->setEmail($form['email']->getData());

            // $em=$this->getDoctrine()->getManager()->getRepository('VendorConnectUsersBundle:Users');
            // $usersreturn=$em->findOneByEmail($users);

            //            if(!is_null($usersreturn))
            //            {
            //              if($users->getPassword()!= $usersreturn->getPassword())
            //                 {
            //            //return $this->redirectToRoute('homepage');
            //             return $this->render('VendorConnectUsersBundle:Default:inscription.html.twig');

            //                 } 
            //                else
            //                 {

            //             $session->set('users',$usersreturn);
            //             //return $this->redirectToRoute('homepage');
            //             return $this->render('VendorConnectUsersBundle:Default:inscription.html.twig');
            //                }

            //             }
            //             else
            //             {

            //                return $this->render('VendorConnectUsersBundle:Default:connexion.html.twig', array('form' => $form->createView())); 
            //            }

    return $this->render('VendorConnectUsersBundle:Default:inscription.html.twig');

        }
                // if(!$session->has('users'))
                    //    {
        return $this->render('VendorConnectUsersBundle:Default:connexion.html.twig', array('form' => $form->createView()));
                    // }
                    // else
                    // {

                //return $this->render('VendorConnectUsersBundle:Default:compte.html.twig');
                    //}

    }
    public function deconnexionAction(Request $request)
    {        
            $session = $request->getSession()->remove('users');
            //$users = $session->get('users');
        return $this->redirectToRoute('homepage');

    }
     public function inscriptionAction()
    {
        return $this->render('VendorConnectUsersBundle:Default:inscription.html.twig');

    }
    public function connexionPasswordErrorAction(){
                    return $this->render('VendorConnectUsersBundle:Default:passworderror.html.twig');

    }
    public function connexionCompteErrorAction(){
return $this->render('VendorConnectUsersBundle:Default:compteerror.html.twig');

    }

}

Mon probleme c'est que je recupère jamais les données passer en post
Donc je vous solicite pour votre aide.
Merci d'avance de vos réponses.

3 réponses


tout d'abord tu passe l'entity $user dans la paramètre findOneByEmail
$usersreturn=$em->findOneByEmail($users);

je crois tu doit :

$email = $form['email']->getData();

$em=$this->getDoctrine()->getManager()->getRepository('VendorConnectUsersBundle:Users');

$usersreturn=$em->findOneByEmail($email);

Bonjour a toi .
Mon soucis est que mon controller est inbriqueé dans une vues .
Lorsque je fais un vardump de $form->isValid() ou $form->isSubmitted(),
j'ai un retour fasle.
je vais link la vue ou est appelé mon controller :

{% extends '::base.html.twig' %}

{% block stylesheets %}
{{ parent() }}

<link rel="stylesheet" type="text/css" href="{{ asset('css/header.css') }}"/>

<link rel="stylesheet" type="text/css" href="{{ asset('css/carrousel.css') }}"/>

<link rel="stylesheet" type="text/css" href="{{ asset('css/recherchecp.css') }}"/>

{% endblock stylesheets %}

{% block javascripts %}
<script src="{{ asset('js/monjs.js') }}"></script>
{% endblock javascripts %}

 {% block body %}
<div class="container-fluid">

{% block header %}
{% include ':template:header.html.twig' %}
{% endblock header %}
</div>
<div class="container">

<div class="row">
{% block recherche %}

{% include ':template:recherchecp.html.twig' %}
{% endblock recherche %}
</div>
<div class="row">
<div class="col-md-6">
{{ render(controller('VendorConnectUsersBundle:Users:connexion')) }}
</div>
</div>
<div class="row">
<div class="col-hidden-xs col-md-6">
{% block carrousel %}
{% include ':template:carrousel.html.twig' %}
{% endblock carrousel %}
</div>
</div>

<div class="row">
<div class="col-xs-22 col-md-6">
{% block produit %}
{% include ':template:produit.html.twig' %}
{% endblock %}
</div>
</div>

{% endblock body %} 

Salut,

Essaye ceci :

$users = new Users();

$form = $formFactory->createBuilder()
    ->add('email', TextType::class)
    ->add('password', PasswordType::class)
    ->add('save', SubmitType::class, array('label' => 'connection'))
    ->getForm();

$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
    $data = $form->getData();
    $users->setEmail($data['email']);

    return $this->redirectToRoute('homepage');
}