Софтуерно Инженерство
Loading...
Mac_Vick avatar Mac_Vick 3 Точки

Въпрос относно 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()
                                                          )
    );

}
Тагове:
0
PHP MVC Frameworks
RoYaL avatar RoYaL SoftUni Team Trainer 6846 Точки

А какъв е резултатът, който трябва да се постигне?

0
Mac_Vick avatar Mac_Vick 3 Точки

Първоначално ми трябваше id-то на log-натия user, исках да сложа данните в сесия след логване. И се сетих, че мога да го ползвам от entity-то. Писъл съм на codeigniter и малко трудно влизам в абстракцията и модулирането на symfony. Благодаря за отговора и ще гледам първо да се позамислям преди да пиша във форума хаха.

Лек ден !

0