如何验证模型类中的整数数组?
模型类
数组(' marks_Mark',' CTypeValidator',' type' =>' array')
marks_Mark是一个数组。
查看
echo $ form-> textField($ model,' marks_Mark []',array(' value' => $ value-> marks_Mark,'大小&#39 =大于10,'最大长度' =→3));
下一步如何进行?
答案 0 :(得分:0)
这不起作用,因为您始终会从string
收到textField
。我想,您想让用户输入类似1, 2, 3
的内容,然后检查,如果这些值都是整数,对吧?
您可以使用常规文本字段,如:
<?php echo $form->textField($model, 'marks') ?>
然后编写自定义验证器:
array('marks', 'validateIntegerList')
public function validateIntegerList($attribute, $params)
{
$message = isset($params['message']) ?
$params['message'] : 'Please only enter integers!';
$value = $this->$attribute;
// User entered single number -> OK
if(ctype_digit(trim($value)) && strpos($value, ',')===false)
return;
// User entered list of numbers -> Check each
foreach( explode(',', $this->$attribute) as $value) {
if(!ctype_digit(trim($value))) {
$this->addError($attribute, $message);
return;
}
}
}
您可能需要稍微调整一下验证逻辑。但它应该给你一些想法。