大于
验证一个值是否大于另一个值(在选项中定义)。要强制一个值大于或等于另一个值,请参阅 GreaterThanOrEqual。要强制一个值小于另一个值,请参阅 LessThan。
适用于 | 属性或方法 |
类 | 大于 |
验证器 | GreaterThanValidator |
基本用法
以下约束确保:
Person
的siblings
数量大于5
Person
类的age
大于18
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\GreaterThan(5)]
protected int $siblings;
#[Assert\GreaterThan(
value: 18,
)]
protected int $age;
}
比较日期
此约束可用于比较 DateTime
对象与任何日期字符串,该日期字符串 被 DateTime 构造函数接受。例如,你可以检查日期是否至少是第二天
1 2 3 4 5 6 7 8 9 10
// src/Entity/Order.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Order
{
#[Assert\GreaterThan('today')]
protected \DateTimeInterface $deliveryDate;
}
请注意,PHP 将使用服务器配置的时区来解释这些日期。如果你想固定时区,请将其附加到日期字符串
1 2 3 4 5 6 7 8 9 10
// src/Entity/Order.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Order
{
#[Assert\GreaterThan('today UTC')]
protected \DateTimeInterface $deliveryDate;
}
DateTime
类也接受相对日期或时间。例如,你可以检查上述交货日期是否至少在当前时间五小时后开始
1 2 3 4 5 6 7 8 9 10
// src/Entity/Order.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Order
{
#[Assert\GreaterThan('+5 hours')]
protected \DateTimeInterface $deliveryDate;
}
选项
message
类型: string
默认值: 此值应大于 {{ compared_value }}。
如果该值不大于比较值,则将显示此消息。
你可以在此消息中使用以下参数
参数 | 描述 |
---|---|
{{ compared_value }} |
下限 |
{{ compared_value_type }} |
期望值类型 |
{{ value }} |
当前(无效)值 |
payload
类型: mixed
默认值: null
此选项可用于将任意特定于域的数据附加到约束。Validator 组件不使用配置的 payload,但其处理完全取决于你。
例如,你可能想使用 多个错误级别,以便根据错误严重性在前端以不同方式呈现失败的约束。
propertyPath
类型: string
默认值: null
它定义了对象属性,其值用于进行比较。
例如,如果你想将某个对象的 $endDate
属性与同一对象的 $startDate
属性进行比较,请在 $endDate
的比较约束中使用 propertyPath="startDate"
。
提示
当使用此选项时,它的值在错误消息中作为 {{ compared_value_path }}
占位符提供。虽然不打算将其包含在显示给最终用户的错误消息中,但在使用 API 在客户端执行任何映射逻辑时,它很有用。
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可获得许可。