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 Trainer 6849 Точки

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

0
Mac_Vick avatar Mac_Vick 3 Точки

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

Лек ден !

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.