【发布时间】:2016-02-08 14:09:03
【问题描述】:
Symfony 表单错误中消息参数数组的用途是什么?
例如,我有以下情况:在一个表单上,我有一个订阅者,在该订阅者中,根据用户提供的信息,一个 API 可能会被调用,并且一些额外的错误可能会添加到 Symfony 表单中。
因此,当发生错误时,我会在字段上添加一个新错误:
$myForm->get('name')->addError(
new FormError('name.api_invalid', null, array('{{ api_name }}' => $someValue))
);
其中 'name.api_invalid' 在 message.en.yml 中定义为
name.api_invalid: "The API says the name is actually {{ api_name }}. Please fix before proceeding."
在翻译消息时,不会替换“参数”。
这不是表单错误参数应该如何工作的吗?
注意:我可以使用
$myForm->get('name')->addError(
new FormError(
$this->translator->trans('name.api_invalid', array('{{ api_name }}' => $someValue))
)
);
但我真的对那些错误参数很好奇。
谢谢!
【问题讨论】:
-
不知道这是否会在我的脑海中发挥作用,但我建议将
{{ api_name }}替换为%api_name%,它更类似于Symfony 约定和参数的使用。您使用该翻译消息的方式看起来像一个 Twig 变量,但实际上并非如此。 -
@JasonRoman 嗯...我选择了
{{ api_name }},因为这也是在 Symfony 约束消息中使用变量的方式 (symfony.com/doc/current/reference/constraints/Length.html)。尝试使用 % 代替,但仍然没有运气,尽管如此,最后这只是一个标记,所以无论每个开发人员喜欢什么语法,它都应该工作......但它没有:)
标签: php forms symfony symfony-forms