2011-04-29 8 views
0

私は単純な保存(データベースに挿入)を行うために、モデル内にメソッドを持っています。まず、特定の条件を満たしているユーザーを見つけて、これらの見つかったユーザーが、ここのコードです:私のcakePHPの保存方法に何か問題があります

function save_emails(){ 
    App::import('Model', 'User'); 
    App::import('Model', 'EmailSave'); 

    $this->EmailSave = new EmailSave(); 
    $this->User  = new User(); 

    $users = $this->User->find("all", array(
     'conditions' => array(
      'OR' => array(
       array('User.user_type_id' => '4'), 
       array('User.user_type_id' => '1') 
      ) 
     ), 
     'fields' => array(
      'username', 
      'email' 
     ), 
     'recursive' => -1 
    )); 

    foreach($users as $user){ 
     //pr($user); 
     $to   = $user['User']['email']; 
     $subject = $email_template['subject']; 
     $template = //calling a templating method; 

     $save_send['EmailSave']['created'] = date("Y-m-d H:i:s", time()); 
     $save_send['EmailSave']['modified'] = date("Y-m-d H:i:s", time()); 
     $save_send['EmailSave']['send_to'] = $to; 
     $save_send['EmailSave']['subject'] = $subject; 
     $save_send['EmailSave']['message'] = $template; 

     //pr($save_send); 
     $this->EmailSave->save($save_send); 
     //echo $to."<br />".$subject."<br />".$template."<br />".$cron_id."<br />"; 
    } 
} 

これは前方にかなりのストレートで、私は、ユーザーの方にfindメソッドを実行したときに、私は今、どん​​な複雑な方法を使用していない意味:

$users = $this->User->find("all", array(
      'conditions' => array(
       'OR' => array(
        array('User.user_type_id' => '4'), 
        array('User.user_type_id' => '1') 
       ) 
      ), 
      'fields' => array(
       'username', 
       'email' 
      ), 
      'recursive' => -1 
     )); 

それ2つの結果を返し、ケーキのprメソッドを使用して結果を出力しようとすると、w ouldは正しい結果を出力しますが、saveメソッドを適用すると結果の1つしか挿入されませんが、どうすれば可能ですか?私はコードを1行ずつトレースしていますが、見つかるだけで問題は、データベースに保存するときに2つの結果をすべて保存できない場合です。助けてください。

答えて

0

http://book.cakephp.org/view/1031/Saving-Your-Data

作成または更新は、モデルのidフィールドによって制御されています。 $Model->idが設定されている場合、この主キーを持つレコードが更新されます。それ以外の場合は、新しいレコードが作成されます。

ループでsave()を呼び出す場合は、create()に電話することを忘れないでください。

+0

aaww man!私は馬鹿だと感じる!どうもありがとう – littlechad

関連する問題