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

Въпрос относно роли за потребители

Здравейте

Използвам начина за ролите от урока на Веселин Малезанов. Имам 3 таблици - users, roles и user_roles

Въпроса ми е, когато използвам method-a setRoles() в контролера, очаква Collection и не знам как да сетна роля автоматично при регистрация.

public function setRoles($role){
        $this->roles = null;
        $this->roles[] = $role;
        return $this;
    }

Това е cotroller-a ми: 

if ($form->isSubmitted() && $form->isValid())
{
    $password = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
    $user->setPassword($password);
    $user->setRoles();

    $em = $this->getDoctrine()->getManager();
    $em->persist($user);
    $em->flush();

    return $this->redirectToRoute('login_user');
}

 

Какво трябва да подам на метода setRoles() ?

Благодаря !

Тагове:
1
PHP MVC Frameworks
dvdty avatar dvdty 465 Точки

Подаваш желаните роли, като съответстват с тези от roles таблицата.

0
12/02/2018 14:53:28
Mac_Vick avatar Mac_Vick 3 Точки

Искам да сетна роля - ROLE_USER на всеки нов регистриран потребител.  Не трябва ли да подам желаната роля - setRoles(['ROLE_USER']), но така не става, плюе ми грешка, че очаква collection, а давам масив.

1
dvdty avatar dvdty 465 Точки

$roleRepository = $this->getDoctrine()->getRepository(Role::class);
$userRole = $roleRepository->findOneBy(['name' => 'ROLE_USER']);
$user->addRole($userRole);

0
Mac_Vick avatar Mac_Vick 3 Точки

Благдодаря ! Не се сетих, че трябва да мина през репоситорито.

1