2017-05-12 12 views
0

Alles ist im Titel, ich habe versucht, & eine Symfony-Form zu validieren, aber ich kann nicht. Wenn ich die Anfrage verfolge, finde ich, dass das Formular keine Daten in den POST-Parametern gesendet hat (Kein Anforderungsinhalt, keine POST-Parameter)! Mein Code ist:PHP-SYMFONY 3 (Warum mein Formular die Anfragedaten nicht validiert?)

im Controller:

use Symfony\Component\Form\Extension\Core\Type\CheckboxType; 
use Symfony\Component\Form\Extension\Core\Type\EmailType; 
use Symfony\Component\Form\Extension\Core\Type\FormType; 
use Symfony\Component\Form\Extension\Core\Type\PasswordType; 
use Symfony\Component\Form\Extension\Core\Type\ResetType; 
use Symfony\Component\Form\Extension\Core\Type\TextType; 
use Symfony\Component\Form\Extension\Core\Type\DateType; 
use Symfony\Component\Form\Extension\Core\Type\SubmitType; 
use Symfony\Bridge\Doctrine\Form\Type\EntityType; 
use Symfony\Component\Form\Test\FormBuilderInterface; 
use Symfony\Component\Form\Tests\Extension\Core\Type\CheckboxTypeTest; 
use Symfony\Component\Form\Tests\Extension\Core\Type\RepeatedTypeTest; 
use Symfony\Component\HttpFoundation\Request; 
use gestionBundle\Models\rememberMe; 
use Symfony\Component\HttpFoundation\Session\Session; 

class DefaultController extends Controller 
{ 
    /** 
    * @Route("/login",name="login") 
    */ 
    public function loginAction(Request $request) 
    { 
    $p=new compte(); 
    $form=$this->createFormBuilder($p) 

     ->add('mail',EmailType::class) 
     ->add('password',PasswordType::class) 
     ->add('login', SubmitType::class, array('label' => 'Login')) 
     ->getForm(); 
    $form->handleRequest($request); 


    $em=$this->getDoctrine()->getManager(); 
    $repository=$em->getRepository('gestionBundle:compte'); 


    $session=$this->container->get('session'); 
    print_r($_REQUEST); 
    if ($request->getMethod()=='POST'){ 


     $data = $request->request->all(); 
     $email = $data['form']['mail']; 
     $password = $data['form']['password']; 


$user=$repository>findOneBy(array('mail'=>$email,'password'=>$password)); 

     if($user) 
     { 


      $remember=$request->request->get('remember_me'); 

      if($remember=='remember me'){ 

       $rememberMe=new rememberMe(); 
       $rememberMe->setEmail($email); 
       $rememberMe->setPassword($password); 

       $session = new Session(); 
       $session->start(); 
       $session->set('rememberMe',$rememberMe); 
      } 

    return 
$this>render('gestionBundle:Default:index.html.twig',array('user'=>$user)); 
     } 

     else{ 
      $this->addFlash('alerte','LOGIN/PASSWORD INCORRECTE.. RESSAYER !'); 


     } 

    } 
    else{ 

     if ($session->has('rememberMe')){ 
      echo 'cas contarire 2'; 
      $rememberMe=$session->get('rememberMe'); 
      $email=$rememberMe->getemail(); 
      $password=$rememberMe->getpassword(); 
      $user=$repository->findOneBy(array('mail'=>$email,'password'=>$password)); 

      if($user) 
      { 

       return $this- 
    >render('gestionBundle:Default:index.html.twig',array('user'=>$user)); 
      } 
     } 
    } 
    return $this->render('gestionBundle:Default:login.html.twig',array('fr'=>$form->createView())); 

} 
} 

Mein Zweig Datei:

Meine TWIG Datei alles in Ordnung ist, weil ich bereits die Funktion 'loginaction' gelungen zu drehen, ohne irgendwelche Probleme! Ich weiß nicht, was in der 'LoginAction'-Funktion falsch ist?

Vielen Dank für Ihre Hilfe. diese

Antwort

0

Wechsel:

if ($request->getMethod()=='POST'){ 

hierfür:

if ($form->isSubmitted() && $form->isValid()){ 
+0

Vielen Dank für Ihre answer..I begehen einen Fehler, während das Abmeldeverfahren implementiert. Anforderungen: _method: POST Problem in meiner Routing.yml & Security.yml Datei aufgelöst :) – Yassine

Verwandte Themen