У меня проблема с созданием сеанса.Сеансы в Symfony2 Отображаемое имя
Я смог реализовать логин с сеансом, который может извлекать имя и идентификатор пользователя, но когда я меняю страницу, больше не отображается имя.
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use AppBundle\Entity\FosUser;
use AppBundle\Modals\Login;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction()
{
return $this->render('default/index.html.twig');
}
/**
* @Route("/login/", name="login")
*/
public function loginAction(Request $request)
{
$session = $this->getRequest()->getSession();
if($request->getMethod()=='POST'){
$session -> clear();
$email = $request->get('email');
$password = $request->get('password');
$remember=$request->get('remember');
$em = $this ->getDoctrine()->getEntityManager();
$repository = $em->getRepository('AppBundle:FosUser');
$user = $repository->findOneBy(array('email'=>$email,'password'=>$password));
if($user){
if($remember == 'remember-me'){
$login = new Login();
$login->setEmail($email);
$login->setPassword($password);
$session->set('login',$login);
}
return $this->render('default/index.html.twig',array('name'=>$user->getFirstname(),'userid'=>$user->getId()));
}else{
return $this->render('default/login.html.twig',array('name'=>'Login Failed'));
}
}else{
if($session->has('login')){
$login = $session->get('login');
$email = $login->getEmail();
$password = $login->getPassword();
$em = $this ->getDoctrine()->getEntityManager();
$repository = $em->getRepository('AppBundle:FosUser');
$user = $repository->findOneBy(array('email'=>$email, 'password' => $password));
if($user){
return $this -> render('default/index.html.twig',array('name'=>$user->getFirstname(),'userid'=>$user->getId()));
}
}
return $this->render('default/login.html.twig');
}
}
public function logoutAction(Request $request){
$session = $this->getRequest()->getSession();
$session->clear();
return $this->render('default/login.html.twig');
}
}
Пожалуйста, отредактируйте все необходимые данные, особенно ваш код, в свой вопрос. – KhorneHoly
Я пробовал, но не позволяю мне :(. Дает мне ошибки. – codi05ro
Какие ошибки вы получаете из Stackoverflow? – KhorneHoly