2011-11-04 4 views
1

CakePHP 2.0.2에 문제가 있습니다. "프로필 수정"작업을 만들고 싶습니다. 여기'프로파일 편집'동작 만들기 CakePHP 2.0?

public function edit_profile() { 
    if ($this->request->is('get')) { 
     $this->request->data = $this->User->findById($this->Auth->user('id')); 
    } else { 
     if ($this->User->save($this->request->data)) { 
      $this->Session->setFlash(__('Your profile has been updated')); 
     } 
    } 
} 

그리고 내 생각이다 : 나는 양식을 제출할 때

<h2>Edit Profile</h2> 
<?php 
    echo $this->Form->create('User'); 
    echo $this->Form->input('id', array('type' => 'hidden')); 
    echo $this->Form->input('first_name'); 
    echo $this->Form->input('last_name'); 
    echo $this->Form->input('email'); 
    echo $this->Form->end('Save Profile'); 
?> 

그러나, 아무 일이 일어날 것 같다 여기 내 컨트롤러 액션입니다. 나는 아무런 성공 메시지도 얻지 못했고 오류 메시지도받지 못했다. if ($this->User->save($this->request->data))을 보완하는 else 문을 넣으면 해당 코드 블록이 실행되어 User 모델 데이터가 저장되지 않았 음을 나타냅니다.

어디로 잘못 가고 있습니까?

+0

유효성 검사 규칙에 "필수"속성이주의해야합니다. 2.x에서는 쉽게 잘못 될 수 있습니다. "allowEmpty"만 사용하는 것이 더 좋으며 - 허용 목록도 있습니다. – mark

답변

1

사용자가 저장되지 않은 경우 else 문에서 $ this-> user-> validationErrors를 확인하십시오. 내 생각 엔 폼에없는 필드에 대해 실패한 추가 유효성 검사 규칙을 정의해야합니다.

+0

빙고! 내 모델은'username'과'password' 필드의 유효성을 검사하려고합니다. 여러분이 볼 수 있듯이 이것은 내 업데이트 양식에 존재하지 않습니다. 나는 그것들을 단지 숨겨진 필드로 양식에 추가 할까? 내'register()'액션을 위해 그것들이 필요하기 때문에. –

+0

EDIT : 모델의 데이터 검증을 위해 'on' 매개 변수를 찾지 않아도됩니다. 능숙한! –