我的用户类中有以下声明(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”的字段,该字段不在表单中,并且不属于到“注册”组,所以不应该首先验证。
那里发生了什么?
答案 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;