Forms 我能';不要在createFormBuilder中使用变量

Forms 我能';不要在createFormBuilder中使用变量,forms,symfony-forms,symfony,Forms,Symfony Forms,Symfony,为什么我不能在函数createFormBuilder中使用变量$idType public function buildForm(FormBuilderInterface $builder, array $options) { $idType = $options['data']->getEvenement()->getType()->getId(); $builder ->add('depart', DateTimeType:

为什么我不能在函数createFormBuilder中使用变量$idType

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)
    ;
}
她不认识

感谢您的帮助

您应该使用
use($idType)
关键字将$idType变量从父范围继承到父范围中

您应该使用
use($idType)
关键字将$idType变量从父范围继承到父范围中


我建议多加一点措辞来解释你想要实现的目标。你会犯什么错误?我建议多加一点措辞来解释你想要实现的目标。你会犯什么错误?
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)
    ;
}