Yii小数范围的验证规则

时间:2015-09-05 03:43:01

标签: php validation yii

我想为小数范围值创建规则40.000< = score_percentage< = 100.000

array('entrance_score', 'compare','operator'=>'<=','compareValue'=>100, 'message'=>'Maximum Entrance Score should be 100.' ),

从GUI进行测试时,可接受小于100的十进制数,但不能接受大于或等于40.000。

以下规则无法正常运作,我该怎么办?

array('entrance_score', 'compare','operator'=>'>=','compareValue'=>0 , 'message'=>'Minimum Entrance Score should be 40.' ),

1 个答案:

答案 0 :(得分:1)

因此,您要进行检查,以便entrance_score值介于40.000100.000之间,对吗?

您可以在模型中放置minmax规则,例如:

array('entrance_score', 'numerical', 'integerOnly'=>false, 'min'=>40, 'max'=>100),

或者,您可以创建自己的自定义验证规则,例如:

public function rules()
    {
        return array(
            //............
            array('entrance_score', 'numerical', 'integerOnly'=>false),
            array('entrance_score', 'authenticate'),
            //.....
        );
    }

和您的authenticate功能:

public function authenticate($attribute,$params)
    {
        if($this->entrance_score < 40) {
            $this->addError('entrance_score','Minimum Entrance Score should be 40.');
        } elseif($this->entrance_score > 100) {
            $this->addError('entrance_score','Maximum Entrance Score should be 100.');
        }
    }

应该这样做。