Symfony Forms EntityType验证错误:选择不存在于uuid-doctrine中

时间:2017-06-28 09:22:57

标签: php forms symfony doctrine

我使用ramsey / uuid-doctrine包将二进制UUID作为实体的主键。几个月前已经发布了同样的问题,但接受的答案只是一个黑客。 (uuid_binary form validation error: The choice does not exist or is not unique) 我想找到一个长期的解决方案:

class ReferencedEntity
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="UUID")
     * @ORM\Column(type="uuid_binary")
     */
    private $id;

    ...
} 

我需要为另一个实体构建一个表单,该表单在ManyToOne关系中具有上面的实体。

所以我在表单构建器中添加了一个EntityType,如下所示:

        ->add('status', EntityType::class, [
            'class' => '<FullyQualtifiedPath>\ReferencedEntity',
            'choice_label' => 'title',
            'label' => 'Status'
        ])

一切正常,HTML select将uuids作为键,但是当我提交表单时,我得到了这个验证错误:

Symfony\Component\Validator\ConstraintViolation Object(Symfony\Component\Form\Form).children[status] = 1f1fdca0-5bcd-11e7-b6d1-0a002700000b

Caused by: Symfony\Component\Form\Exception\TransformationFailedException Unable to reverse value for property path "status": The choice "1f1fdca0-5bcd-11e7-b6d1-0a002700000b" does not exist or is not unique

Caused by: Symfony\Component\Form\Exception\TransformationFailedException The choice "1f1fdca0-5bcd-11e7-b6d1-0a002700000b" does not exist or is not unique

如果查询控制器中的Doctrine Repository,它会找到ReferencedEntity。

0 个答案:

没有答案