感谢你来到这里
我真的很激动
盼望,能有你的支持
捐赠可扫描二维码转账支付
支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
它去验证一个“应当等于当前已认证用户之密码”的input值。在表单中,当一个用户要改变其密码时,这很有用,但为了安全,需要键入他们的旧密码。
它 不 应被用于验证一个登录表单,因为它是由security系统自动完成的。
Applies to(适用于) | property or method(属性或方法) |
Options | |
Class | UserPassword |
Validator | UserPasswordValidator |
假设你有一个 ChangePassword
类,用在表单中,通过让用户键入其旧密码以及一个新密码,来修改他们的密码。本约束将会验证此处的旧密码能够与用户的当前密码相匹配:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // src/AppBundle/Form/Model/ChangePassword.php
namespace AppBundle\Form\Model;
use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert;
class ChangePassword
{
/**
* @SecurityAssert\UserPassword(
* message = "Wrong value for your current password"
* )
*/
protected $oldPassword;
} |
1 2 3 4 5 6 | # src/AppBundle/Resources/config/validation.yml
AppBundle\Form\Model\ChangePassword:
properties:
oldPassword:
- Symfony\Component\Security\Core\Validator\Constraints\UserPassword:
message: 'Wrong value for your current password' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!-- src/AppBundle/Resources/config/validation.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="AppBundle\Form\Model\ChangePassword">
<property name="oldPassword">
<constraint
name="Symfony\Component\Security\Core\Validator\Constraints\UserPassword"
>
<option name="message">Wrong value for your current password</option>
</constraint>
</property>
</class> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // src/AppBundle/Form/Model/ChangePassword.php
namespace AppBundle\Form\Model;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert;
class ChangePassword
{
public static function loadValidatorData(ClassMetadata $metadata)
{
$metadata->addPropertyConstraint(
'oldPassword',
new SecurityAssert\UserPassword(array(
'message' => 'Wrong value for your current password',
))
);
}
} |
值类型: message
默认值: This value should be the user current password.
这是当背后的字符串同当前用户的密码 不 相匹配时,要显示的信息。
值类型: mixed
默认值: null
本选项可以把任意 “与特定的域相关”的数据(domain-specific data )附加到一个约束中。配置好的payload,并不为Validator组件所用,但它的处理进程完全在你掌控之中。
例如,你可能希望使用 几种错误级别 来在前台基于 “错误严重性” 去呈现一个 “不同的” 约束失败信息。
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。