Не удалось определить тип доступа для свойства ... новое значение должно быть массивом или экземпляром \ Traversable, заданным "App \ Entity \ Role" - PullRequest
0 голосов
/ 20 июня 2020

ошибка:

Не удалось определить тип доступа для свойства «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()
        ]);
    }

```



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...