2 回答

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
正如Cerad所建議的,dataTransformer是解決方案。
所以只是為了position,我創(chuàng)建了一個(gè)dataTransformer
class PositionToIdTransformer implements DataTransformerInterface
{
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function transform($position)
{
if (null === $position) {
return '';
}
return $position->getId();
}
public function reverseTransform($id)
{
if (!$id){
return;
}
$position = $this->em->getRepository(Position::class)->find($id);
if (null === $position){
throw new TransformationFailedException(sprintf("the position '%s' does not exist!", $id));
}
return $position;
}
}
我在我的formBuilder:
class FieldPositionType extends AbstractType
{
private $pt; //PositionToIdTransformer
public function __construct(PositionToIdTransformer $pt)
{
$this->pt = $pt;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('position', TextType::class)
;
$builder->get('position')->addModelTransformer($this->pt);
}
}
它就像一個(gè)魅力!

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
查詢生成器鏈接:https ://symfony.com/doc/current/reference/forms/types/entity.html#ref-form-entity-query-builder
如評(píng)論中所述,嘗試使用它。我無(wú)法進(jìn)一步阻止您,因?yàn)槲铱床坏侥钠溆噙壿嫞珵榱讼拗茖?shí)體字段中顯示的條目,它看起來(lái)像這樣:
$builder->add('users', EntityType::class, [
'class' => User::class,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
'choice_label' => 'username',
]);
- 2 回答
- 0 關(guān)注
- 149 瀏覽
添加回答
舉報(bào)