2012-01-02 6 views
2

저는 cakephp 2.0.2로 작업하고 있습니다. 비교적 단순한 모델 연합을 저장하고 있습니다. 이미지에 일대 다 연관이있는 작업 모델입니다. 나는이 두 모델에 대한 검증이 예측할 수없는 방식으로 작동하고 있음을 확인하고 있습니다.Cakephp 2.0 인증 문제

나는 완벽하게 유효한 형태로 저장 할 때 :

$this->Work->saveAll($this->data); 

내가 성공적으로 저장 데이터를 얻을 수 있지만, 내가 전화 할 때 :

$this->Work->invalidFields(); 

을 실제로 작업에 실패 검증 참조 폼이 트리거하지 않아야 함에도 불구하고 모델의 규칙.

Array 
(
    [title] => Array 
     (
      [0] => Please enter a title. 
     ) 

    [copy] => Array 
     (
      [0] => Please enter project copy. 
     ) 

) 

더 실험하기. 내가 경우 의도적으로 비워 제목 필드 양식을 다시 제출, 나는 내 $this->Work->invalidFields() 호출에서 다음과 같은거야 : 그래서

Array 
(
    [title] => Array 
     (
      [0] => Please enter a title. 
      [1] => Please enter a title. 
     ) 

) 

를,이 규칙에 관계없이 한 번에 표시됩니다 기본적으로 보이는 경우는 정말 잘못되었거나 아니. 그런 다음 필드가 실제로 유효하지 않은 경우 다시.

마지막으로, 후손을위한, 내 간단한 유효성 검사 규칙 :이 기묘에

public $validate = array(
    'title' => array(
     'rule' => 'notEmpty', 
     'required' => true, 
     'message' => 'Please enter a title.' 
    ), 
    'copy' => array(
     'rule' => 'notEmpty', 
     'required' => true, 
     'message' => 'Please enter project copy.' 
    ) 
); 

어떤 아이디어? 미리 감사드립니다!

+0

정확한 오류가 발생합니다. 혹시 해결책을 찾았습니까? 감사! 척. –

답변

0

모델의 데이터 배열에 데이터를 설정하고 유효성을 검사 해 보셨습니까? 내 생각 엔 유효성 검사를 명시 적으로 호출해야한다는 것입니다. 그러나 ... lib 폴더에있는 cake model 클래스를 통해 찾아 볼 수 있습니다.

$this->Work->data = $data; 
if($this->Work->validate()){ 
    $this->Work->saveAll(); 
} 
+0

댓글을 완성하는 것을 잊었습니까? –

0

https://cakephp.lighthouseapp.com/projects/42648/tickets/2597-model-invalidfields-add-validation-messages-each-time-it-s-called

마크 층에서이 답변 : 어떻게 작동하는지

예,이입니다. 하위 레벨 메소드를 사용하고 있으므로 validationErrors가 재설정되지 않습니다. 에 create() + save()를 사용하여 자동으로 오류를 플러시해야합니다. 또는 오류가 발생하기 만하면 은 invalidFields()를 호출하는 대신 Models-> validationErrors 속성에 액세스해야합니다.