textField
에서 항상 string
을 수신하므로이 방법은 작동하지 않습니다. 내 생각 엔 사용자가 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;
}
}
}
합니다. 그러나 그것은 당신에게 약간의 아이디어를 줄 것입니다.
Harti ... 감사합니다. 빠른 답변입니다. 형제 님, foreground에 텍스트 필드를 넣었습니다. 그래서 컨트롤러에서는 배열 [pos]처럼 검색 할 것입니다. 희망을 이해합니다. –
그런 경우에도 사용자 정의 유효성 검사기를 작성할 수 있습니다. '$ attribute' 배열로 작업하려면 예제를 수정할 수 있어야합니다. 우리는 여기서 일할 수 없다.) –