2011-07-31 3 views
0

사용자 ID가 user_id 행에없는 경우 컨트롤러에 10 개의 새 행을 만들려고합니다. create() 함수를 시도한 다음 save() 함수를 사용했지만 작업을 수행하지 않는 것 같습니다. 아래 코드는 우리가이 문제를 해결할 수있는 방법입니까? Cakephp는 사용자 ID를 확인한 후 10 개의 새로운 행을 저장합니다.

function invite_fellows(){ 

     //Read userid 
     $userid = $this->Session->read('Auth.User.id'); 

     $invite_table = $this->User->Invite->findbyUserId($userid); 

     if(empty($invite_table)){ 
      $code_limit = 10; 
      //Save 10 unique codes for the user 
      for($i=0; $i<$code_limit;$i++){ 
       $unique_id = $this->_unique($userid); // Unique id with userid as initial prefix 
       $this->data['Invite'] = array('user_id' => $userid, 'code' => $unique_id); 
       $this->User->Invite->create(); 
       $this->User->Invite->save($this->data['Invite']); 
      } 
     } 


     //Find user in users and associated tables 
     $user = $this->User->findbyId($userid); 

     //Find user in invite table 
     $confirmed = $this->User->Invite->find('count', array('conditions' => array('user_id' => $userid,'invited_user >' => 0))); 
     $this->set(compact('user','confirmed')); 
    } 

감사합니다.

+0

"그 일을하지 않는 것"은 무엇을 의미합니까? 오류가 있습니까? 대신 행 하나만 저장하거나 행을 전혀 저장하지 않습니까? – JJJ

+0

죄송합니다. 행을 저장하지 않습니다. –

답변

0

대개 저장을 차단하는 유효성 검사 규칙이 있습니다. save() 뒤에 debug($this->User->Invite->validationErrors);을 추가하여 확인하십시오. core.php에서 디버그 레벨이 1 이상으로 설정되어 있는지 확인하십시오.

+0

확인 오류가 발견되었습니다. 유효성이 검사되지만 테이블 열에 존재하지 않는 몇 가지 필드가 있습니다. 나는 여전히 내 userform에 사용되는 것처럼 그것들을 검증 할 필요가있다. 별도로 사용자 정의 폼 대신 컨트롤러 기능에서 사용해야한다고 생각하십니까? 당신의 도움을 주셔서 감사합니다! –

+0

'$ this-> User-> Invite-> save ($ this-> data ['Invite '], false);' – JJJ

+0

우수! 고맙습니다! –

관련 문제