2014-11-12 2 views
0

나는 마케팅 캠페인을 작성하는 프로젝트를 진행하고 있습니다. 다른 속성 중에서 각 캠페인은 해당 캠페인에서 재생할 오디오 파일을 지정하는 AudioFile 엔터티를 연결합니다. 캠페인을 만들 수있는 나의 양식은 다음과 같습니다Symfony2 : 엔티티 필드 유형의 클래스 속성을 동적으로 변경하십시오.

그렇다 나는 사용자에게 캠페인을 만들 때 "즉시"새 오디오 파일을 업로드 할 수있는 가능성을 제공하려는에서
$form = $this->createFormBuilder($CampaignObject) 
->add('audiofile', 'entity', array('class'=>'AcmeDemoBundle:AudioFiles', 'property'=>'name', 'multiple'=>false, 'expanded'=>true, 'mapped'=>true)) 
/*other fields */ 

. 일단 업로드되고 새로운 오디오 파일 엔티티 객체가 생성되어 데이터베이스에 저장되면 엔티티 필드를 오디오 파일 목록의이 변경 사항을 반영하도록 동적으로 변경하려고하므로 잃지 않도록 모든 페이지를 다시로드하지 않고이 작업을 수행하고 싶습니다. 이미 채워져있는 분야지만 그것을 성취 할 방법을 알 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다.

당신

답변

0

에게 잘 감사, 심포니는 일부 자바 스크립트 기능을 구현해야 원하는 것을 달성하는 것을 의미 백엔드 프레임 워크입니다. 또한 폼은 상태 저장이며 컨트롤러에서 인스턴스화됩니다.

따라서 AudioFile을 그대로 유지 한 다음 Campaign에 연결해야합니다. 이는 파일과 캠페인을 정중하게 수용하는 별도의 양식을 갖추면 달성 할 수 있습니다.

0

감사합니다. 드디어 해결 방법을 찾았습니다. 각 캠페인에 대한 선택 단추가 추가 된 양식과 독립적으로 getRepository에서 오디오 목록을 생성했습니다. 사용자가 선택 버튼을 클릭하면 선택한 오디오 파일의 ID로 숨겨진 필드가 채워집니다. 그런 다음 컨트롤러에 제출할 때 수동으로 AudioFile 객체를이 id로 가져 와서 Doctrine $ campaign-> addAudiofile ($ AudioFile)을 수행 한 후에 유지합니다.

관련 문제