如果我正确理解了你的问题,那么你需要获得给定类别的子类别。您可以将其作为选项传递给
ProductType
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use AppBundle\Entity\ProductCategory;
use AppBundle\Repository\ProductCategoryRepository;
Â
class ProductType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
$category = $options['category'];
            $builder->add('productCategory',EntityType::class,array(
                'class'        => 'AppBundle:ProductCategory',
                'query_builder' => function(ProductCategoryRepository $repository) use ($category){
                        return $repository->getRootNodesQueryBuilder($category);
                },
                'label'        => 'product category',
                'choice_label' => 'name',
                'choice_value' => 'name',
                'multiple'     => false,
                'expanded'     => false,
                'required'     => true
            ));
    }
Â
Â
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => Product::class,
            'method' => 'POST',
'category' => null
        ));
    }
}
在里面
GetRootNodeQueryBuilder()
您可以根据传递的类别分析子类别。在controller(您接收AJAX请求的地方)中,您可以像这样使用它
$form = $this->createForm(ProductType::class, $product, [
'category' => $request->get('category')
]);