2011-07-31 56 views
0

我想在控制器中創建10個新行,如果在user_id行中找不到userid。我嘗試了create()函數,然後保存()函數,但它似乎沒有完成這項工作。 下面是代碼,有沒有辦法解決這個問題?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

好的,我發現了錯誤。我有幾個已驗證的字段,但不存在於表列中。我仍然需要驗證那些用於我的用戶表單的用戶。你認爲我應該在控制器函數中使用它來代替我的用戶表單嗎?謝謝你的幫助! –

+0

保存時可以禁用驗證:'$ this-> User-> Invite-> save($ this-> data ['Invite'],false);' – JJJ

+0

非常好!謝謝! –