ошибка:
Не удалось определить тип доступа для свойства «userRoles» в классе «App \ Entity \ User»: свойство «userRoles» в классе «App \ Entity \ User» может быть определенным с помощью методов «addUserRole ()», «removeUserRole ()», но новое значение должно быть массивом или экземпляром \ Traversable, «App \ Entity \ Role» задано ...
код:
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstname',TextType::class,[
'label'=>'Prénom',
'attr'=>['placeholder'=>'Votre prénom ...']
])
->add('lastname',TextType::class,[
'label'=>'Nom',
'attr'=>['placeholder'=>'Votre nom ...']
])
->add('email',EmailType::class,[
'label'=>'Email',
'attr'=>['placeholder'=>'Votre email ...']
])
->add('hash',PasswordType::class,[
'label'=>'Mot de passe',
'attr'=>['placeholder'=>'Votre mot de passe']
])
->add('passwordConfirm',PasswordType::class,[
'label'=>'Confirmation de mot de passe',
'attr'=>['placeholder'=>'Veuillez confirmez votre mot de passe']
])
->add('userRoles',EntityType::class,[
'class'=>Role::class,
'choice_label'=>'title',
])
;
}
public function addUserRole(Role $userRole): self
{
if (!$this->userRoles->contains($userRole)) {
$this->userRoles[] = $userRole;
$userRole->addUser($this);
}
return $this;
}
/**
* Permet de s'inscrire
*@Route("/register",name="compte_register")
*
*
* @return Response
*/
public function register(Request $request,UserPasswordEncoderInterface $encoder)
{
$user=new User();
$form=$this->createForm(RegistrationType::class,$user);
$manager=$this->getDoctrine()->getManager();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid())
{
$hash=$encoder->encodePassword($user,$user->getHash());
$user->setHash($hash);
$manager->persist($user);
$manager->flush();
$this->addFlash("success","Inscription effectée. Vous pouvez vous connectez!");
return $this->redirectToRoute("compte_login");
}
return $this->render('compte/registration.html.twig',[
'form'=>$form->createView()
]);
}
```