Въпрос относно set-ване на параметри в Sessions
Здравейте,
опитвам се да set-на параметри в сесията ми. Ако я сетвам в register controller-a се сетват, но по този начин сесията ще се пълни само при регистрация на потребители -
/**
* @Route("/register", name="register_user")
* @param Request $request
* @param UserPasswordEncoderInterface $passwordEncoder
* @return \Symfony\Component\HttpFoundation\Response
*/
public function registerAction(Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$user = new User();
$user->setDateAdded(new \DateTime('now'));
$form = $this->createForm(RegisterType::class,$user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid())
{
$roleRepository = $this->getDoctrine()->getRepository(Role::class);
$userRole = $roleRepository->findOneBy(['name' => 'ROLE_USER']);
$password = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);
$user->setRoles($userRole);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
$session = new Session();
$session->set('name',$user->getUsername());
$session->set('id',$user->getId());
$session->set('email',$user->getEmail());
return $this->redirectToRoute('login_user');
}
return $this->render('user/register.html.twig', ['form' => $form->createView()]);
}
Как да сетвам параметри след log in и правилен ли е начина, по който съм тръгнал ? В loginAction-a не мога да достъпя User-a с пълната информация след регистрация/логване, как да сетна username, id и email от формата за регистрация или поне username и id от формата за логване -
/**
* @Route("/login", name="login_user")
* @param AuthenticationUtils $authenticationUtils
* @param User $user
* @return \Symfony\Component\HttpFoundation\Response
*/
public function loginAction(AuthenticationUtils $authenticationUtils){
$session = $this->get('session');
$session->set('username',?);
$session->set('id',?);
$session->set('email',?);
return $this->render('security/login.html.twig', array('error' => $authenticationUtils->getLastAuthenticationError(),
'lastUsername' => $authenticationUtils->getLastUsername()
)
);
}
Първоначално ми трябваше id-то на log-натия user, исках да сложа данните в сесия след логване. И се сетих, че мога да го ползвам от entity-то. Писъл съм на codeigniter и малко трудно влизам в абстракцията и модулирането на symfony. Благодаря за отговора и ще гледам първо да се позамислям преди да пиша във форума хаха.
Лек ден !