尝试验证一个字段是否不为空(长度 > 0),则要验证的字段的长度必须是某个长度(2 个字符)。在这种情况下,“Assert\Expression”似乎可以工作,但我在尝试查找属性的长度时遇到了麻烦。似乎您无法在表达式中调用 php 函数。表达式文档提到了函数,但也许我不明白......我是否需要注册我自己的函数,它只返回一个strlen()
. 如果是这样,您如何注册自己的功能?有人可以解释是否有办法做到这一点,或者也许有比使用我忽略的表达式更好的方法......
/**
* @var string
*
* @ORM\Column(name="plate", type="string", length=10)
*/
private $plate;
/**
* @var string
*
* @ORM\Column(name="state", type="string", length=2)
* @Assert\Expression(
* "strlen(this.getPlate()) == 0 or (strlen(this.getPlate()) > 0 and strlen(value) == 2)",
* message="Must be 2 characters"
* )
*/
private $state;
在上述情况下,我得到一个错误The function "strlen" does not exist around position 1