2016-07-03 2 views
0

왜 변수 $ idType을 내 함수 createFormBuilder에서 사용할 수 없습니까?createFormBuilder에서 변수를 사용할 수 없습니다.

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $idType = $options['data']->getEvenement()->getType()->getId(); 

    $builder 
     ->add('depart',  DateTimeType::class, array(
      'widget' => 'single_text' 
     )) 
     ->add('inscription', TextType::class) 
     ->add('prixNl',  IntegerType::class) 
     ->add('prixL',  IntegerType::class) 
     ->add('resultat', TextType::class) 
     ->add('sousType',  EntityType::class, array(
      'class'  => 'CalendrierBundle:SousType', 
      'choice_label' => 'nom', 
      'multiple'  => false, 
      'query_builder' => function (EntityRepository $er) { 
       return $er->createQueryBuilder('u') 
        ->where('u.typeId = :type') 
        ->setParameter('type', $idType); 
      } 
     )) 
     ->add('save',  SubmitType::class) 
    ; 
} 

그녀는 당신은 closure에 부모 범위에서 $ idType 변수를 상속 use ($idType) 키워드를 사용해야합니다 당신의 도움이

+0

내가 원하는 것을 설명하기 위해 좀 더 자세한 설명을 추가하는 것이 좋습니다. –

+0

어떤 오류가 발생합니까? – nbryans

답변

2

에 대한

감사를 인식하지 못하는 것입니다.

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $idType = $options['data']->getEvenement()->getType()->getId(); 

    $builder 
     ->add('depart',  DateTimeType::class, array(
      'widget' => 'single_text' 
     )) 
     ->add('inscription', TextType::class) 
     ->add('prixNl',  IntegerType::class) 
     ->add('prixL',  IntegerType::class) 
     ->add('resultat', TextType::class) 
     ->add('sousType',  EntityType::class, array(
      'class'  => 'CalendrierBundle:SousType', 
      'choice_label' => 'nom', 
      'multiple'  => false, 
      'query_builder' => function (EntityRepository $er) use ($idType) { 
       return $er->createQueryBuilder('u') 
        ->where('u.typeId = :type') 
        ->setParameter('type', $idType); 
      } 
     )) 
     ->add('save',  SubmitType::class) 
    ; 
}