-2

フォームを作成し、EntityType フィールドを追加します。

        ->add('name', EntityType::class, [
            'class' => MyTest::class,
            'choice_label' => function($name){
                return $name->getName();
            },
            'mapped' => false
        ])

カテゴリが車である名前を表示したい。

私のデータベーステーブルは次のとおりです。

ID | 名前 | カテゴリー

4

2 に答える 2

0

これを行うだけで、choice_label のコールバック関数で自由にラベルを変更できます。カテゴリが文字列の場合は getName() をスキップします。カテゴリ名に基づく文字列ではなくカテゴリを表示する場合は、スイッチをスキップします。同じように

->add('name', EntityType::class, [
            'class' => MyTest::class,
            'choice_label' => function(MyTest $entity){
                switch($entity->getCategory()->getName()) {
                    case 'car':
                        return 'It\'s a car!';
                }
                return $entity->getCategory()->getName();
            },
            'mapped' => false
        ])
于 2020-01-15T12:38:50.337 に答える
0

コードに追加query_builderします。

    ->add('name', EntityType::class, [
        'class' => MyTest::class,
        'query_builder' => function(EntityRepository $er){
            return $er->createQueryBuilder('u')
                ->where('u.category = :category')
                ->setParameter('category', 'car');
        },
        'choice_label' => function($name){
            return $name->getName();
        },
        'mapped' => false
    ])
于 2020-01-19T07:35:35.153 に答える