2012-04-10 7 views
1

Kohana ORM에서 모델의 유효성 검사에 문제가있어 ORM_Validation_Exception을 throw해야합니다. emailaddress의 유효성을 검사하려고합니다.모델 값 유효성 검사에서 예외가 발생하지 않습니다.

Model_Emailaddress

이 예제는 화면에 오류가있는 배열을 덤프한다 대신 그냥 더 통지없이 EMAILADDRESS을 저장

public function action_valid() 
    { 
     $email = ORM::factory('emailaddress'); 

     $email->emailaddress = 'test'; 

     try 
     { 
      $email->create(); 

     } 
     catch(ORM_Validation_Exception $e) 
     { 
      echo Debug::dump($e->errors()); 
     } 
    } 

Controller_Test

public function rules() 
{ 
    return array(
     'emailaddress' => array(
      array(
       'Valid::email' 
      ), 
     ), 
    ); 
} 

.

'Valid :: email'을 'not_empty'로 변경하면 예외가 발생합니다. 일부 디버깅 후 Valid :: email이 false를 반환한다는 것을 발견했습니다.

편집 : 일부 사람들의 말처럼 '유효한 :: 이메일'을 '이메일'로 변경해도 도움이되지 않습니다. 또한 이메일 메서드 내부에 이탈을 배치하면 스크립트 실행이 중지됩니다.

답변

1

내가 Kohana 검증 클래스 조합에 버그가 포함되어 있다는 것을 발견 약간 무거운, 무거운 디버깅 후 저장 더 나은 사용 PHP 5.3.3. 작동해야하지만 그렇지는 않습니다.

Kohana_Validation :: 검사()

변경

$data[$field] = Arr::get($this, $field); 

Kohana_Validation :: 오류에서

$data[$field] = Arr::get($this->_data, $field); 

()

변경에

':value' => Arr::get($this, $field), 

':value' => Arr::get($this->_data, $field), 
0

OOP .. 방법 만 사용에 대한 :

'email' insert 'Valid::email' 

() 메소드 :

+0

에이 솔루션은 작동하지 않습니다 – LHolleman

관련 문제