2

我想使用自定义验证Bank Account number(123456789)and .(000123456789)Routing number(434344343)message=>Please enter 12 digit valid account number

我使用了数字验证器,整数,但没有按预期工作。验证器应检查值是数字以及数字长度。我在这里查看此文档tutorial-core-validators

 public function rules()
{
    return [
      [['accountnumber'], 'number', 'min' => 12, 'max'=>12],// not wokred
      [['routingnumber'], 'number', 'min' => 9, 'max'=>9], // not wokred
// then I used
  [['accountnumber', 'routingnumber', ], 'integer'] 
]
}

有什么建议吗?

4

3 回答 3

4

和参数用于min,而不是长度,也许您应该保存为字符串。max

['accountnumber', 'string', 'length' => [12, 12]

并添加一个正则表达式:

['accountnumber', 'match', 'pattern' => '/^[0-9]*$/i']
于 2015-12-01T11:38:21.470 回答
1

尝试这个:

public function rules()
{
return [
  [['accountnumber'], 'string', 'min' => 12, 'max'=>12, 'message' => "Please enter 12 digit valid account number"],
  [['routingnumber'], 'string', 'min' => 9, 'max'=>9], 
  [['accountnumber', 'routingnumber', ], 'integer'], 
 ]
}
于 2015-12-01T12:37:49.437 回答
1

最小、最大数量验证

 public function rules(){
        return [
            [['accountnumber'],'number','min'=>10],
            [['accountnumber'],'number','max'=>100],
            [['accountnumber'],'number','min'=>10,'max'=>100],
        ];
    }

最小、最大字符串验证

public function rules(){
    return [
        [['min_string'],'string','min'=>10],
        [['max_string'],'string','max'=>10],
        [['min_max_string'],'string','min'=>5,'max'=>10],
        ['min_max_string2', 'string', 'length' => [4, 10]],
    ];
}

自定义验证

public function rules(){
    return [
        ['custom_validation','custom_function_validation', 'values'=>['One', 'Two']],
    ];
}
public function custom_function_validation($attribute, $params){
    // add custom validation
    if (!in_array($this->$attribute, $params['values'])) 
        $this->addError($attribute,'Custom Validation Error');
}
于 2015-12-01T13:00:37.630 回答