2014-02-03 3 views
0

Привет, У меня есть функция в контроллере, где я отправляю форму. Но я хочу запустить запрос вставки в цикле ниже: $ this-> Session-> read ('Cart') значение равно 3, но мой код вставляет одну запись в таблицу, если я предупреждаю что-то внутри цикла, он предупреждает 3 раза, как я могу запустите запрос вставки 3 раза, пожалуйста, помогите мне. Спасибо заранее.cake php insert query in loop


public function checkout() { 
     $this->loadModel("Checkout"); 
     Configure::read(); 
     $aorderno = $this->Checkout->find('all', array('order' => array('Checkout.id' => 'DESC'),'limit' => 1));  
     $this->set('aorderno',$aorderno); 
      foreach($aorderno as $order) 
      { 
      $myorderno=$order['Checkout']['orderno']+1; 
      } 
     $firstname = $this->request->data['checkout']['firstname']; 
     $this->set('firstname',$firstname); 
     $lastname = $this->request->data['checkout']['lastname']; 
     $this->set('lastname',$lastname); 
if(count($this->Session->read('Cart'))>0) 
      { 
        foreach($this->Session->read('Cart') as $value) 
        { 
        $sku=$value['Product']['sku']; 
        $this->Checkout->save(array('orderno' => $myorderno,'firstname' => $firstname,'lastname' => $lastname'sku' => $sku)); 
        } 
      } 
} 

ответ

1

Я должен в вашем $ this-> Checkout-> saveQuery функции.

Вы используете что-то вроде $ this-> save();

Перед $ this-> save() вызовите $ this-> create();

Надеюсь, это поможет.

+0

Thanx много человек это действительно работает спасибо – prameshwer

0

Вы можете использовать saveMany

foreach(.......){ 
     $arr[]= array('orderno' => $myorderno,'firstname' => $firstname,'lastname' => $lastname'sku' => $sku); 
    } 

    $this->Checkout->saveMany($arr, array('deep' => true)); 
+0

Thanx это действительно работает для меня – prameshwer