2017-12-19 1 views
-1

Symfony 양식을 통해 특정 사용자의 사용자 역할을 편집하려고합니다.Symfony 사용자의 편집 역할에 오류가 발생했습니다.

내 양식이 포함되어 있습니다

->add('role', ChoiceType::class, [ 
       'expanded' => true, 
       'required' => false, 
       'multiple' => true, 
       'choices' => [ 
        'ROLE_SUPER_ADMIN' => 'ROLE_SUPER_ADMIN', 
        'ROLE_TEST' => 'ROLE_TEST', 
        'ROLE_USER' => 'ROLE_USER' 
       ], 
      ]); 

이 핸들러의 저장 방법은 데이터베이스에 데이터를 지속하는 형태

public function editUserAction(User $user, Request $request) 
    { 

     $userForm = $this->createForm(UserForm::class, $user); 
     $userForm->handleRequest($request); 

     if ($userForm->isSubmitted() && $userForm->isValid()) { 
      $this->userService->save($user); 

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

     return $this->render(
      'userEdit.html.twig', 
      [ 
       'form' => $userForm->createView(), 
      ] 
     ); 
    } 

을 처리하는 나의 방법이다.

내가 여러 역할을 선택하려고 할 때 얻을 오류는 이것이다 :

"교리 \ 공통 \ 컬렉션 \ ArrayCollection에가", "배열"유형 의 인수 주어진 예상

+4

사용자 클래스를 게시 할 수 있습니까? $ this-> userService 뒤에 무엇이 있습니까? – Chris

+0

정확히 어디서 오류가 나타 납니까? 게시 스택 추적. – svgrafov

답변

1

당신이 addRole 및 removeRole에이 http://symfony.com/doc/current/reference/forms/types/choice.html#by-reference

->add('role', ChoiceType::class, [ 
      'expanded' => true, 
      'required' => false, 
      'multiple' => true, 
      'choices' => [ 
       'ROLE_SUPER_ADMIN' => 'ROLE_SUPER_ADMIN', 
       'ROLE_TEST' => 'ROLE_TEST', 
       'ROLE_USER' => 'ROLE_USER' 
      ], 
      'by_reference' => false 
     ]); 

확인 : by_reference 옵션을 사용하여 User 클래스

관련 문제