2013-01-17 3 views
0

CakePHP 1.3 사용 게시물 및 댓글 테이블이있는 블로그 용 엔진을 개발했으며 최근에 데이터베이스에서 Comment 모델이 정의 되었음에도 불구하고 콘텐츠 열에 null 값이있는 레코드가 있음을 확인했습니다 적절한 유효성 검사 :모델에 정의 된 유효성 검사 - CakePHP



    <?php 
    class Comment extends AppModel { 
     var $name = 'Comment'; 
     var $sequence = 'comments_seq'; 

     var $belongsTo = array(
      'Post' => array(
       'className' => 'Post', 
       'foreignKey' => 'post_id' 
      ) 
     ); 

     var $validate = array(
      'content' => array(
       'required' => array (
         'rule' => 'notEmpty', 
         'message' => 'Content can't be empty.' 
       ) 
      ), 
      'post_id' => array(
       'rule' => 'notEmpty' 
      ), 
      'created' => array(
       'rule' => 'notEmpty' 
      ) 
     ); 
    ?> 

CakePHP 프레임 워크에 버그가 있습니까? 아니면 위에 정의 된 유효성 검사가 정확하지 않습니까?

답변

2

유효성 검사 규칙에서 실제로 필드가 필요하지 않습니다. 요구한다는 것은 유효성을 검사 할 때 핵심이 존재해야 함을 의미합니다. notEmpty 규칙은 키가 이 아니며이 아니지만 이 존재 함을 의미합니다.입니다. 당신이 잠재적으로 저장할 때 단순히 '콘텐츠'키를 포함하지 않음으로써 완전히 비어 기록을 저장할 수

var $validate = array(
    'content' => array(
    'required' => array (// here, 'required' is the name of the validation rule 
     'rule' => 'notEmpty', 
     'message' => 'Content can\'t be empty.', 
     'required' => true // here, we say that the field 'content' must 
         // exist when validating 
    ) 
), 
    'post_id' => array(
    'rule' => 'notEmpty' 
    ), 
    'created' => array(
    'rule' => 'notEmpty' 
    ) 
); 

을 필요한 키가 없으면 :

은 유효성 검사 규칙에 필요한 옵션을 사용하여, 필드가 존재 함을 요구하려면 . 이제는 저장해야하는 데이터에 'content'가 없으면 유효성 검사가 실패합니다.

+0

참. 그건 내 잘못이야/ –

+0

'allowEmpty' 키,'required' 키,'notEmpty' 규칙의 차이점은 처음에는 이해하기 힘듭니다 :) – jeremyharris