我使用Symfony3,我有产品实体和税务实体。
//Product
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Tax")
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
*/
private $tax;
这是ProductType
->add('tax', EntityType::class, array(
'label' => 'Taxe',
'class' => 'AppBundle\Entity\Tax',
'choice_label' => 'name',
'placeholder' => 'Tax',
'multiple' => false,
'expanded' => false,
'required' => false,
'choice_value' => function ($tax) {
/** @var Tax $tax */
return $tax->getRate();
},
))
问题在于,当编辑实体时,选择占位符而不是此产品的正确税,当我删除 choice_value 时,将选择税。
解决:
要使用choice_value,值应为唯一
答案 0 :(得分:0)
奇怪,一切看起来都很正常。 我唯一可以建议的是尝试改变“班级”的方式。指定并删除" choice_value'中的注释调用的:
->add('tax', EntityType::class, array(
'label' => 'Taxe',
'class' => 'AppBundle:Tax',
'choice_label' => 'name',
'placeholder' => 'Tax',
'multiple' => false,
'expanded' => false,
'required' => false,
'choice_value' => function ($tax) {
return $tax->getRate();
},
))
此外,在进行更改后,请确保清除缓存:
php bin/console cache:clear --env=prod
试试看,我无法想到其他任何事情。