Ich versuche, eine einfache Anmeldeseite für meine usermanagementbundle zu implementieren, und ich bin neu beim Erstellen eines Formulars durch Formbuilder. Es gibt nur 3 Funktionen in meinem Bundle, wo es eine neue Sitzung gibt, und es wird auf verschiedenen Routen aufgerufen, auch wenn ich die anderen 2 entferne, bekomme ich immer noch den gleichen Fehler. Hier ist mein Code:
<?php
namespace Acme\UserManagementBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Acme\UserManagementBundle\Entity\Users;
use Acme\UserManagementBundle\Form\SigninType;
class DefaultController extends Controller
{
public function indexAction()
{
$session = new Session();
$users = new Users();
$form = $this->createForm(new SigninType(), $users);
if ($session->has('token'))
{
return $this->render('AcmeUserManagementBundle:Default:home.html.twig', array('token' => $session->get('token')));
}
if (!($session->has('alert')))
{
$session->set('alert', 'Welcome');
return $this->render('AcmeUserManagementBundle:Default:index.html.twig', array('form' => $form->createView(), 'alert' => 'Welcome!'));
}
else
{
$alert = $session->get('alert');
$session->clear();
return $this->render('AcmeUserManagementBundle:Default:index.html.twig', array('form' => $form->createView() ,'alert' => $alert));
}
}
public function logoutAction()
{
$session = new Session();
$session->invalidate();
return $this->render('AcmeUserManagementBundle:Default:index.html.twig');
}
public function signupAction()
{
return $this->render('AcmeUserManagementBundle:Default:signup.html.twig');
}
public function LoginAction(Request $request)
{
$session = new Session();
if ($request->getmethod()=='POST' || $session->get('token') != ""){
$user = $request->get('user');
$password = $request->get('password');
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository('AcmeUserManagementBundle:Users');
$username = $repository->findOneBy(array('username'=>$user,'password'=>$password));
if (!$session->get('token') && $username)
{
$token = $this->get('token_generator')->getToken();
$session->set('token', $token, 'user', $username);
} else {
$session->set('alert', 'Invalid Username and/or Password!');
return $this->redirect($this->generateUrl('homepage'));
}
return $this->redirect($this->generateUrl('homepage'));
} else {
return $this->redirect($this->generateUrl('homepage'));
}
}
}
Als ich versuchte, eine formbuilderinterface in meiner Funktion zu implementieren ich plötzlich diese eine gegenüber dem normalen Erstellen von angetroffen aus durch html, die ich habe keine Probleme bekommen überhaupt. Gibt es ein Problem mit meinem Code? weil ich diesen Login-Code über HTML ausprobiert habe und ihn in formbuilderinterface von Symfony konvertiert habe.
Habe ich etwas in meiner Antwort verpasst? –
ow Entschuldigung, ich habe versucht, den Kommentar zu posten, den ich als Antwort notiert habe. Aber es scheint, dass Sie bereits darauf hingewiesen haben. Ich habe es gelöscht und Ihre Antwort als richtig markiert. Prost! – Cedric
Danke @ Cedric !!! –