2014-04-17 2 views
0

제출 된 데이터에 대한 유효성 검사를 수행하기 위해 다음 메서드를 만들었습니다.Kohana - 규칙 메서드 오류 발생

public function validate_create($array) { 

    $array = Validation::factory($array) 
     -> rules('username', $this - > _rules['username']); 

    return $array; 
} 

규칙 검사() 메소드를 실행하려고 할 때

protected $_rules = array(
    'username' = > array(
     'not_empty' = > NULL, 
     'min_length' = > array(6), 
     'max_length' = > array(32), 
    ) 
); 

으로하는 코드가 다음과 같은 예외가 던지는 정의된다.

ErrorException는 [주의] : call_user_func_array()는 매개 변수 1 이

어느 한 조언을하는 방법이 문제를 해결하기 위해 할 수 주어진 유효한 콜백, 아니 배열 또는 문자열이 될 것으로 기대? 사용자 이름 입력 필드에 signup.php

<? PHP 에코 폼 :: 라벨 ('_ 이름', '이름')으로 정의된다? > <? php echo Form :: input ('username'); ? >

답변

1

Validation 개체를 직접 작성하는 형식은 $_rules 배열의 형식과 다릅니다.

올바른 방법 서명과 정의 documented here을 볼 수 있으며 signature for Validation::rule을 읽는 것이 좋습니다. 간단히 말해 rules() 메서드는 배열 목록을 원하며 각 내부 배열의 첫 번째 요소는 유효성 검사 함수이고 두 번째 요소는 전달할 매개 변수의 배열입니다.

이것은 당신이 키가 확인 기능이며, 매개 변수 값을 어디에 사용하려고하는 $_rules 배열 (지도) 형식과 다른 것을

$rules = array(
    array('not_empty', NULL), 
    array('min_length', array(':value', 6)) 
); 

$v = Validation::factory($values) 
    ->rules('fieldname', $rules); 

참고.

ORM::rules() method 유효성 검사 대신 자신의 유효성 검사 기능을 구축하려는 이유가 있습니까?

+0

나는 다운로드 한 kohana 책 (bi Jason D. Straughan)에서 kohana를 배우려고 시도하고있었습니다. 나는 그의 모범을 시험해 보았다. 시간 내 줘서 고마워. – logeeks

관련 문제