2011-07-31 17 views
0

useridが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

「仕事をしていないようだ」とはどういう意味ですか?エラーが出ますか?代わりに1つの行だけを保存するか、まったく行を保存しませんか? – JJJ

+0

残念ながら、行はまったく保存されません。 –

答えて

0

ほとんどの場合、保存をブロックする検証ルールがあります。 save()の後にdebug($this->User->Invite->validationErrors);を追加して確認してください。 core.phpのデバッグレベルが少なくとも1に設定されていることを確認してください。

+0

OKエラーが見つかりました。私は検証されているが、テーブルの列には存在しないいくつかのフィールドを持っています。私はまだ彼らが私のuserformのために使用されるようにそれらを検証する必要があります。あなたは別に私のuserformの代わりにこれをコントローラ機能で使うべきだと思いますか?ご協力いただきありがとうございます! –

+0

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

+0

優秀!ありがとうございました! –

関連する問題