从symfony模板中的assert获取消息

时间:2018-06-04 08:19:21

标签: symfony symfony-forms symfony-3.4

我有一个与symfony中的Assert表单验证相关的问题。所以我有:

/**
 * @ORM\Column(type="string")
 * @Assert\NotBlank(message="client.firstName.notBlank")
 * @Assert\Length(
 *      min = 2,
 *      max = 50,
 *      minMessage = "client.firstName.invalid",
 *      maxMessage = "client.firstName.invalid"
 * )
 * @Assert\Regex(
 *     pattern     = "/^[0-9]+$/i",
 *     htmlPattern = "^[0-9]+$",
 *     message="client.firstName.regex"
 * )
 */
protected $firstName;

在validators.yml:

client:
    firstName:
        notBlank: 'Not Blank'
        invalid: 'Invalid'
        regex: 'Regex'

我有以下形式:

<div class="form-group">
    {{ form_label(form.firstName) }}
    {{ form_widget(form.firstName) }}
    <div class="invalid-feedback">
        {{ 'client.firstName'|trans({}, 'validators') }}
    </div>
</div>

当我尝试提交表单时,我会收到消息:client.firstName。我需要一种从assert获取消息的方法。你能帮我吗 ? Thx提前。

1 个答案:

答案 0 :(得分:0)

您需要为每个断言消息添加一个其他文件:

# app/Resources/translations/validators.en.yml
client.firstName.notBlank: Please enter your firt name.
......

我认为这不是必要的:

<div class="invalid-feedback">
    {{ 'client.firstName'|trans({}, 'validators') }}
</div>