Въпрос относно 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. Благодаря за отговора и ще гледам първо да се позамислям преди да пиша във форума хаха.
Лек ден !