首页 > 解决方案 > 如何使用存储库自定义 EntityType 的数据

问题描述

我想从 FormType 中获得自定义选项

这是表单类型:

builder->add('demandes', EntityType::class, [
            'placeholder' => 'Choisissez une option',
            'class'    => DemandeCandidats::class,
            'mapped' => false,
        ])

这是存储库

public function findActif($value)
{
    return $this->createQueryBuilder('d')
        ->andWhere('d.etat = :val')
        ->setParameter('val', "actif")
        ->getQuery()
        ->getResult()
    ;
}

如何将此存储库添加到 EntityType ?

标签: phpsymfonyrepositorysymfony4

解决方案


builder->add('demandes', EntityType::class, [
            'placeholder' => 'Choisissez une option',
            'class'    => DemandeCandidats::class,
            'mapped' => false,
            'query_builder' => function(EntityTypeRepository $er) {
                    return $er->createQueryBuilder('d')
                           ->andWhere('d.etat = :val')
                           ->setParameter('val', "actif")
                           ->getQuery()
                           ->getResult();
                    },
        ])

或者

builder->add('demandes', EntityType::class, [
            'placeholder' => 'Choisissez une option',
            'class'    => DemandeCandidats::class,
            'mapped' => false,
            'query_builder' => function(EntityTypeRepository $er) {
                    return $er->findActif("actif");
                    },
        ])

推荐阅读