自定义验证消息不适用于Symfony 3

时间:2016-01-08 09:26:25

标签: php validation symfony

我的用户类中有以下声明(Symfony 3,它是一个实体类):

framework: 
    validation:      { enable_annotations: true }

一切正常,但我无法设置消息,而不是我的消息(例如'test')默认显示“此值不应为空白”。

是的,我确实有

sudo php bin/console cache:clear

在我的config.yml

编辑:是的我通过执行以下命令清除缓存:

$errors = $validator->validate($user, null, array('registration'));

Edit2:请注意它实际上已经通过验证,Symfony看到电子邮件是必需的,如果我将字段留空,它会显示一条消息,这只是它不是我的消息,Symfony不知何故看不到“消息”部分。

Edit3:现在,删除groups = {“registration”}部分,以及更改(在控制器中)

$errors = $validator->validate($user, null);

$validator = $this->get('validator');
$errors = $validator->validate($user, null, array('registration'));
dump($errors);

(删除数组('注册'))

显示正确的消息。然而,这不是一个解决方案。我需要使用群组。

编辑4: 我会发疯的......

如果我没有输入电子邮件,那么:

Fillo fillo=new Fillo();
Connection connection=fillo.getConnection("C:\\Test.xlsx");
String strQuery="Select * from Sheet1 where ID=100 and name='John'";
Recordset recordset=connection.executeQuery(strQuery);

while(recordset.next()){
    System.out.println(recordset.getField("Details"));
}

recordset.close();
connection.close();

(注意“转储”函数调用)然后我看到一个页面上显示的incorect消息(这个值不应该是空白的)但是......当我进入profiler->调试页面时(在那么我可以看到正确的(我的)消息是......

此外,在profiler->表单中,错误是列表中的这个incorect消息(仅作为一个项目),但是...它表示它引用名为“plainPassword”的字段,该字段不在表单中,并且不属于到“注册”组,所以不应该首先验证。

那里发生了什么?

1 个答案:

答案 0 :(得分:1)

你能试试吗?

/**
* @ORM\Column(type="string", length=128, unique=true)
*
* 
* @Assert\NotBlank(
*  message = "The box cant be left blank")
*
*
* @Assert\Email(
*  message = "The email '{{ value }}' is not a valid email."
* 
* )
*/
private $email;