0

有谁知道在 oroCommerce 的注册表单中添加额外字段(Infinitepay Bundle 提供的增值税 ID)的方法?我找不到办法。

问题是该字段不是 CustomerUser 实体的一部分,而是关联的 Customer 实体的一部分。所以普通的 builder->add() 命令不起作用。我也很难找到一种方法将任何代码放入我自己的 Bundle 并让它工作(而不是破解核心)。我已经阅读了 Symfony 文档,但它们并没有太大帮助。

4

1 回答 1

0

首先,您需要创建 symfony 表单扩展,请参阅文档

然后将 VAT ID 字段添加到表单构建器并添加优先级低于此的 POST_SUBMIT 侦听器

在侦听器的代码中,您可以将增值税 ID 值映射到客户实体。

升级版:

  1. 我究竟应该如何使用表单类型扩展?

好的。使用这个要点

文档说它们适用于扩展字段类型,而不是表单。

一样的。任何表单类型都可以用作另一种表单类型的子(字段)。

我不能用 $builder->add() 来做——这给了我一个 500 错误,因为实体没有那个字段。

您应该为您的字段添加一个选项“mapped => false”。查看文档

我还需要一种方法将其放入我自己的捆绑包中,而不是放入核心中。

您可以使用表单类型扩展从​​您自己的包中修改任何表单类型。这就是他们被创造的目的。

于 2018-02-12T15:33:16.373 回答