2012-10-09 6 views
0

안녕하십니까 (적어도 애리조나에서).CakePHP 유효성 검사 :: naturalNumber() 작동하지 않음

모델에 대해 간단한 유효성 검사를 실행하고 있습니다. 멋진 일은 없어.

$this->loadModel('Something'); 
$data = array(
    'foo_id' => '1', 
    'bar' => 'John' 
); 
$this->Something->save($data); 

---------------------------------------- 

class Something extends AppModel { 
    public $validate = array(
     'foo_id' => array(
      'notEmpty' => array(
       'rule' => 'notEmpty', 
       'message' => 'Foo id is missing', 
       'required' => true 
      ), 
      'naturalNumber' => array(
       'rule' => 'naturalNumber', 
       'message' => 'Foo id must be greater than 0', 
       'required' => true 
      ) 
     ) 
    ); 
} 

이것은 쉽지만 Something.foo_id은 항상 자연수 유효성 검사에 실패합니다. Something.id이 정의되어 있지 않으므로 save()INSERT이어야합니다. 값이 0보다 크고 정수가되도록 강요했습니다. 나는 아이디어가 없으며 어떤 일이 일어나고 있는지 추측 할 위험이 있다면 감사 할 것입니다. 도움을 많이 주셔서 감사합니다.

+0

적절한 오류 메시지 만 표시하려면 "last"=> true를 추가해야합니다 (누락 => 큰 0). 필수 사항에주의하십시오. – mark

답변

3

당신은 문서 (http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::naturalNumber) 또는 업그레이드 가이드 (http://book.cakephp.org/2.0/en/appendices/2-2-migration-guide.html)이 규칙은 매우 중 업그레이드하거나 수동으로이 규칙을 추가 2.2

에 추가 된 것을 알 수있을 것입니다 살펴 경우 앱 모델

+0

당신은 절대적으로 올바른 표입니다. 고마워. – user1449855

+0

문제 없음 :) 업그레이드하고 싶습니다. 2.1에서 예쁜 straigt-forward – mark

관련 문제