2014-07-23 4 views
0

의 변경 엔티티 필드 값은 내가 두 엔티티 사이의 두 OneToMany 관계가 음악원 엔티티 양식을 대표하는 양식 \ 타입 \ MusiqueType는, 내가 가진 내보기에서심포니 2 FormType

class MusiqueType extends AbstractType{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('episodeId', 'entity', array(
       'class' => 'MyContentBundle:Episode' , 
      ) 
      ->add('serieId', 'entity', array(
       'class' => 'MyContentBundle:Serie' , 
       'mapped' => false 
      ) 
     ; 
    } 
} 

는, 내가 'episodeId'필드를 표시해야 할 것입니다. 그러나, 내 데이터베이스에 약 1000 개의 에피소드가 있기 때문에이 필드에는 선택한 Serie에 속한 에피소드 만 표시하고 싶습니다.

나는 이것을하기 위해 몇 가지 아약스 액션을 사용하려고했지만, 더 간단한 방법이 있었습니까?

감사합니다.

답변

0

당신은 그것을 사용자 지정 쿼리를 추가하여 양식의 세대보다 구체적인 될 수 있습니다

use Doctrine\ORM\EntityRepository; 
// ... 

$builder->add('users', 'entity', array(
    'class' => 'AcmeHelloBundle:User', 
    'query_builder' => function(EntityRepository $er) { 
     return $er->createQueryBuilder('u')->orderBy('u.username', 'ASC'); 
    }, 
)); 

은 자세한 내용은 SF2의 문서의 entity Field Type 페이지를 참조하십시오.

+0

안녕하세요, 귀하의 답변 주셔서 감사합니다,하지만 내 질문에 정확하게 대답하지 않습니다. 문제는 두 번째 부분입니다. 선택한 Serie Id로 내 Episode 필드를 업데이트하는 것입니다. 나는 AJAX 요청으로 그것을하고 있었지만, 그것을 할 수있는 더 간단한 방법이 있는지 알아야한다. –

+0

양식을 렌더링하기 전에 위의 쿼리에서 필요한 에피소드 만 가져 오는 경우 어떻게해야합니까? ('e.serieId = serie.id');'세리 필드 변경시 에피소드 필드를 동적으로 업데이트해야하는 경우, 참으로 아약스. – np87

+0

글쎄,이 쿼리를 시도합니다. 나는 아약스를 피하고 싶었지만, 그것이 선택이 아닐 것이라고 생각합니다. 고마워요! –