Php 在数组中循环通过会话并保存到数据库

Php 在数组中循环通过会话并保存到数据库,php,codeigniter,Php,Codeigniter,我将购物车项目保存在数组中的会话中,当我想循环它并将客户选择的所有项目保存到数据库中时,只保存第一个项目 这是我的代码,我正在使用CodeIgniter4 public function cartpayment() { foreach ($_SESSION['cart'] as $row) { $data = [ 'ord_prod'=> $row['ord_prod'], 'ord_price'=&

我将购物车项目保存在数组中的会话中,当我想循环它并将客户选择的所有项目保存到数据库中时,只保存第一个项目

这是我的代码,我正在使用CodeIgniter4

 public function cartpayment()
 {
     foreach ($_SESSION['cart'] as $row) {   
         $data = [
             'ord_prod'=> $row['ord_prod'],
             'ord_price'=> $row['ord_price'],
             'ord_ref' => uniqid(),
             'ord_qty' => (int)$row['ord_qty'],
             'ord_cus' => $row['ord_cus'],
         ];

         if($this->PaymentModel->cartPayment($data))
         {
            return redirect()->to('/');
         }
    }
}

这是因为如果第一次
cartPayment()
调用成功,您将重定向用户。当您有一个
返回值时(无论是否为重定向),函数中的其他内容都不会执行。看起来if条件为true,因此代码只运行一次并重定向。注释IF out并查看数据库中的结果。谢谢大家,我删除了IF并且工作正常。这是因为如果第一次
cartPayment()
调用成功,您正在重定向用户。当您有一个
返回值时(无论是否为重定向),函数中的其他内容都不会执行。看起来if条件为true,因此代码只运行一次并重定向。注释IF out并查看数据库中的结果。谢谢大家,我删除了IF并且工作正常。