十进制范围加上额外数字的Symfony验证
我正在尝试验证8到39或99之间的十进制范围: My entity Data.php如下所示:十进制范围加上额外数字的Symfony验证,symfony,validation,Symfony,Validation,我正在尝试验证8到39或99之间的十进制范围: My entity Data.php如下所示: /** * @var decimal * @Assert\Expression( * "this.getFu5Weight() in 8..39 or this.getFu5Weight() == 99", * message="3. Weight at assessment: this value has to be between 8 and 39, or 99 if unknow
/**
* @var decimal
* @Assert\Expression(
* "this.getFu5Weight() in 8..39 or this.getFu5Weight() == 99",
* message="3. Weight at assessment: this value has to be between 8 and 39, or 99 if unknown"
* )
*/
private $fu5Weight;
格式为DataType.php:
->add('fu5Weight', 'number', array('invalid_message'=>'3. Weight at assessment: this value has to be between 8 and 39, or 99 if unknown'))
在Data.orm.yml中:
fu5Weight:
type: decimal
nullable: true
precision: 18
scale: 2
column: FU5_Weight
该范围功能良好,超出范围时会出现错误。问题是当输入十进制数时,它也会变成错误
有什么想法吗
我试过:
@Assert\Expression(
* "this.getFu5Weight() in 8.00..39.00 or this.getFu5Weight() == 99"
显然,它没有起作用。
提供的Symfony最小值和最大值似乎不允许有超出范围的额外数字。我会很高兴有一个没有正则表达式的简单解决方案
谢谢你的支持 在8..39中创建此数组:[8,9,10,…,39]并检查您的值是否在此数组中。显然,不能创建所有浮点值都在8到39之间的数组
请尝试以下方法:
/**
* @var decimal
* @Assert\Expression(
* "(this.getFu5Weight() >= 8 and this.getFu5Weight() <= 39) or this.getFu5Weight() == 99",
* message="3. Weight at assessment: this value has to be between 8 and 39, or 99 if unknown"
* )
*/