0

スクリプトはデータベースに 3 つのエントリを作成するはずですが、最後のエントリである 1 つしか取得できません。

save() メソッドは 1 回しか実行されていないように見えますが、for ループにあるのと同じように 3 回実行されると想定されていませんか?

public function saveAction()
{
        $vars = $this->getRequest()->getPost();
        var_dump($vars);
        $model = mage::getModel('cevent/cevent');

        for($i=0;$i<=2;$i++){

        $data = array(
          'master_customer_id'   =>  $vars['master_customer_id'][$i],
          'customer_id'          =>  'null',
          'email'                =>  $vars['email'][$i],
          'firstname'            =>  $vars['firstname'][$i],
          'surname'              =>  $vars['surname'][$i],
          'address'              =>  $vars['address'][$i],
          'city'                 =>  $vars['city'][$i]
          );


        $model->addData($data);
        $model->save();        
  }
}

データベース用フォームからの投稿データ

    array
  'master_customer_id' => 
    array
      0 => string '1' (length=1)
      1 => string '1' (length=1)
      2 => string '1' (length=1)
  'firstname' => 
    array
      0 => string 'q' (length=1)
      1 => string 'w' (length=1)
      2 => string 'e' (length=1)
  'surname' => 
    array
      0 => string 'q' (length=1)
      1 => string 'w' (length=1)
      2 => string 'e' (length=1)
  'email' => 
    array
      0 => string 'q' (length=1)
      1 => string 'w' (length=1)
      2 => string 'e' (length=1)
  'address' => 
    array
      0 => string 'Invercagille' (length=12)
      1 => string 'Invercagille' (length=12)
      2 => string 'Invercagille' (length=12)
  'city' => 
    array
      0 => string 'q' (length=1)
      1 => string 'w' (length=1)
      2 => string 'e' (length=1)

1 つのエントリのみを表示する DB

ここに画像の説明を入力

何かを提案するか、他の方法があれば教えてください。ありがとうございました

4

2 に答える 2