IdenticalTo
验证一个值与选项中定义的另一个值是否完全相同。要强制验证一个值 *不* 完全相同,请参阅 NotIdenticalTo。
警告
此约束使用 ===
进行比较,因此 3
和 "3"
*不* 被认为是相等的。使用 EqualTo 以 ==
进行比较。
应用于 | 属性或方法 |
类 | IdenticalTo |
验证器 | IdenticalToValidator |
基本用法
以下约束确保
Person
类的firstName
属性等于Mary
*并且* 是一个字符串age
属性等于20
*并且* 是整数类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/Entity/Person.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Person
{
#[Assert\IdenticalTo('Mary')]
protected string $firstName;
#[Assert\IdenticalTo(
value: 20,
)]
protected int $age;
}
选项
message
类型: string
默认值: 此值应与 {{ compared_value_type }} {{ compared_value }} 完全相同。
这是当值不完全相同时将显示的消息。
你可以在此消息中使用以下参数
参数 | 描述 |
---|---|
{{ compared_value }} |
期望值 |
{{ compared_value_type }} |
期望值类型 |
{{ value }} |
当前(无效)值 |
payload
类型: mixed
默认值: null
此选项可用于将任意特定于域的数据附加到约束。配置的 payload 不会被验证器组件使用,但其处理完全由你决定。
例如,你可能希望使用 多个错误级别,以便根据错误严重性在前端以不同方式呈现失败的约束。
propertyPath
类型: string
默认值: null
它定义了用于进行比较的对象属性。
例如,如果你想相对于同一对象的 $startDate
属性来比较某个对象的 $endDate
属性,请在 $endDate
的比较约束中使用 propertyPath="startDate"
。
提示
当使用此选项时,其值在错误消息中以 {{ compared_value_path }}
占位符的形式提供。虽然不打算将其包含在显示给最终用户的错误消息中,但在使用 API 在客户端进行任何映射逻辑时,它非常有用。
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可获得许可。