4

在为我的一个模型设置验证时,我无法获得“范围”规则的正确语法。每个变体似乎只传递(第一个)最小参数,而不是(第二个)最大值。

/**
 * @var   array  Validation rules
 */
public function rules()
{
    return array(
        'title' => array(
            array('not_empty'),
            array('max_length', array(':value', 50)),
        ),
        'time' => array(
            array('not_empty'),
            array('date'),
        ),
        'date' => array(
            array('not_empty'),
            array('date'),
        ),
        'limit' => array(
            array('digit'),
            array('range', array(':value', 1), array(':value', 255)),
        ),
    );
}

我也试array('range', array(':value', array(1, 255)))了也没用。

有什么建议么?

4

2 回答 2

13

Range Rule 的正确语法需要 3 个参数而不是 2 个。正如您在文档中看到的那样:http: //kohanaframework.org/3.2/guide/api/Valid#range

所以代码一定是这样的:

array('range', array(':value', 1, 255)),
于 2012-11-04T18:15:26.590 回答
3

请注意,范围是 ]min;max[ 不是 [min;max],因此排除了限制

数组('范围', 数组(':值', 1, 255)) => [2;254]

于 2014-01-09T13:40:47.030 回答