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.
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');
}