Contributed by
Colin O'Dell
in #28069.

在 Symfony 4.2 中,Validator 组件 引入了一个全新的 DivisibleBy 约束,用于检查一个数字是否可以被其他一些数除尽 ("divisible by")。在对一个数字强制增加特定(数量)时它特别有用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// src/Entity/Item.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
 
class Item
{
    /**
     * @Assert\DivisibleBy(0.25)
     */
    protected $weight;
 
    /**
     * @Assert\DivisibleBy(
     *     value = 5,
     *     message = "This item requires to be stocked in multiples of 5 units."
     * )
     */
     // 本商品的库存数量应当是5(个)的倍数
 
    protected $quantity;
}

这些约束可确保 Item(产品) 的 weight(重量)将被提供为 0.25(倍数)的递增 (即 0.754.50 将是正确的,但 0.187.32 则不正确),同时 quantity(数量)必须能被 5 整除(2522620 可以接受但 12123456 不可以)。