在编辑实体

时间:2016-11-23 23:06:55

标签: symfony

我使用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,值应为唯一

1 个答案:

答案 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

试试看,我无法想到其他任何事情。