2017-10-02 1 views
0

심포니을 배우고 첫 번째 테스트 프로젝트를하고 있습니다. 다가오는 이벤트 목록이있는 페이지가 있습니다.한 페이지에 Symfony 다중 양식

그리고 각 이벤트에 새 클라이언트를 저장하기위한 양식을 추가하고 싶습니다. 어떻게해야합니까? 클라이언트 엔티티를 추가하고 many-to-many 이벤트 엔티티와의 관계, 다음에 무엇이 있어야합니까? 내 양식 수업을 어떻게보아야합니까?

답변

1

이벤트와 클라이언트 사이의 관계에 대한 FormType이 될 것 기본적으로 템플릿에 따라 : truemultiple 옵션을

  • EntityType mutliple 선택과 체크 박스 또는 선택 상자를하기 위해
  • CollectionType 안에 EntityType이 있습니다. 이렇게하면 클라이언트별로 별도의 필드가 생성됩니다.

이러한 솔루션은 각 필드에 대한 모든 클라이언트를 검색하므로 성능 문제가 발생할 수 있습니다. 따라서 가장 좋은 해결책은 자동 완성 필드가있는 custom form type을 만드는 것입니다. 자동 완성 자바 스크립트 플러그인과 간단한 매개 변수 (예 : 클라이언트의 ID 및 이름)로 ChoiceType을 시작하고 이름 대신 클라이언트를 검색하기 위해 data transformer을 사용하여 완료 할 수 있습니다.

예정된 일정 목록이 작 으면 각 일정에 대해이 양식을 만들 수 있습니다. 그렇지 않으면 다르게해야합니다.

  1. 이벤트 컬렉션, 정보를 표시하는 읽기 전용 필드 및 클라이언트를 추가 할 필드가있는 하나의 양식 만 만듭니다. 이것은 가장 단순한 해결책이라고 생각합니다.
  2. 각 이벤트에 대해 양식을 동적으로 추가 : render controller 기능을 사용하여이 작업을 수행 할 수 있지만 많은 이벤트가있을 경우 성능 문제가 발생할 수 있습니다. 따라서 가장 좋은 해결책은 AJAX 호출을 사용하여 이러한 양식을 추가하거나 템플릿을 변경하는 것입니다.