【发布时间】:2012-09-28 14:22:50
【问题描述】:
我在一个小型项目中使用 Silex,但我不确定如何验证两个匹配的密码字段,还可以使用数据库连接检查电子邮件的唯一性。我无法在 SF2 文档中弄清楚。
有人可以给我一个提示或示例吗?
提前致谢
if ('POST' === $user->getMethod()) {
$constraint = new Assert\Collection(array(
'name' => array(new Assert\NotBlank(array('message' => 'Name shouldnt be blank'))),
'username' => array(new Assert\NotBlank(), new Assert\MinLength(3)),
'email' => array(new Assert\NotBlank(), new Assert\Email()),
'password' => array(new Assert\NotBlank(), new Assert\MinLength(6)),
'password2' => array(new Assert\NotBlank(), new Assert\MinLength(6)),
'terms' => array(new Assert\True()),
));
$errors = $app['validator']->validateValue($user->request->all(), $constraint);
if (!count($errors)) {
//do something
}
}
【问题讨论】:
-
我自己不使用 Silex,但在 S2 中,您有一个 UniqueEntity 约束 (symfony.com/doc/current/reference/constraints/UniqueEntity.html) 用于唯一电子邮件和一个重复字段用于密码 (symfony.com/doc/current/reference/forms/types/repeated.html)
-
切换到使用 Symfony 表单,因为它添加了一些功能 :) 仍然怀疑如何使用独特性。
标签: php validation symfony silex