oroCommerce / Symfony 2.8 - 如何在注册表单

时间:2018-02-12 12:43:53

标签: php symfony orocommerce

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

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

1 个答案:

答案 0 :(得分:0)

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

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

在监听器的代码中,您可以将VAT ID值映射到Customer实体。

<强> UPD:

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

确定。使用此gist

  

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

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

  

我不能用$ builder-&gt; add() - 这给我一个500错误,因为实体没有那个字段。

您应该添加一个选项'mapped =&gt;假的'为你的领域。见documentation

  

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

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