如何为来自 ORM 系统(用于 PHP)的字段构建带有翻译的表单?

Posted

技术标签:

【中文标题】如何为来自 ORM 系统(用于 PHP)的字段构建带有翻译的表单?【英文标题】:How to construct forms with translations for fields from an ORM system (for PHP)? 【发布时间】:2021-06-09 13:26:14 【问题描述】:

一些流行的软件库在某种程度上可以help to generate forms(用于数据输入)。 表单字段(或表单类型)可以基于对象-关系映射提供的信息来构建。

我正在寻找根据这样的软件组合实现字段标签和描述的翻译数据显示的方法。

非常感谢您的建议。

【问题讨论】:

抱歉,这个问题要求我们为您找到一个库,这超出了 Stack Overflow 的范围。看看Translatable in Doctrine Extensions。这应该提供一个很好的起点。当您在实现可翻译表单字段时遇到具体问题时,请随时提出新问题。 我使用一些软件库已经有一段时间了。我正在为我的用例寻找特定的软件扩展。通讯系统“Stack Overflow”刚刚通知我“您已达到问题限制”。我可以提供后续问题的机会将如何变化?您想根据可翻译的表单字段添加任何进一步的建议吗? 寻找特定的扩展往往会导致主观的答案,因为多个库可以适合用例,所以没有一个“正确”的答案。这就是 SO 不鼓励他们的原因。我只是想让你知道为什么它可能会被关闭。我不知道问题限制以及是否基于时间。当类似的东西弹出时,通常会有一个带有附加信息的链接。除了它似乎很适合您的用例之外,我不确定该库有什么进一步的建议。随时用问题/问题编辑您的问题,我会看看我是否可以回答。 您如何考虑阐明设计选项,例如基于软件库“Symfony”(用于编程语言“php”)? 抱歉,您的要求有点高,尤其是在我没有具体内容可做的情况下。如果您愿意,我可以将我公司销售代表的联系方式发送给您,然后您可以预约我进行咨询;) 【参考方案1】:

我不知道你是否看过FormType Field Reference。 您可以使用该配置:

// instead of 'label'
$profileFormBuilder->add('address', AddressType::class, [
'label_format' => 'form.address.%name%',
]);

$invoiceFormBuilder->add('invoice', AddressType::class, [
'label_format' => 'form.address.%name%',
]);

然后,将以下代码添加到您的翻译文件中:

form:
    address:
        address: Your Address # 'address' replaced %name%
        invoice: Your Invoice Address # 'invoice' replaced %name%

【讨论】:

* 选择的标签格式会影响字段翻译吗? * 是否有任何其他系统配置选项可以根据对象关系映射来考虑转换类属性(或属性)? 很遗憾没有。这仅支持您的表单标签翻译。 除了表单标签之外,我还想翻译更多数据。每个数据字段最终都可以提供有用的元信息,不是吗?

以上是关于如何为来自 ORM 系统(用于 PHP)的字段构建带有翻译的表单?的主要内容,如果未能解决你的问题,请参考以下文章

如何为客户特定数据使用通用变量

如何为谷歌表单等字段设计数据库?

从 python 使用 TSQL(SQL Server 上的 mssql)时,如何为 SQLAlchemy 自动生成 ORM 代码?

如何为失败的构建中引发的错误指定迭代路径?

C ++如何为vs 2015 x86构建opencv

如何为 .net 选择对象关系映射