2013-08-25 57 views
0

我想在Codeingiter购物车中添加负价,但不能。Codeigniter购物车:添加负价

$coupon = array(
    'id' => $result->id, 
    'name' => $result->name, 
    'qty' => '1', 
    'price' => $result->discount, 
    'options' => array(
     'info' => 'coupon', 
     'qty_description' => '') 
    ); 
$this->cart->insert($coupon); 

$result->discount从DB拍摄,是一个十进制数-20

当我使用这段代码时,我得到购物车中的物品,但它变成(+)20而不是-20。 有什么理由和帮助吗?

回答

1

检查车库系统/库/ Cart.php线#194:

  // Prep the price. Remove anything that isn't a number or decimal point. 
     $items['price'] = trim(preg_replace('/([^0-9\.])/i', '', $items['price'])); 
     // Trim any leading zeros 
     $items['price'] = trim(preg_replace('/(^[0]+)/i', '', $items['price'])); 

     // Is the price a valid number? 
     if (! is_numeric($items['price'])) 
     { 
      log_message('error', 'An invalid price was submitted for product ID: '.$items['id']); 
      return FALSE; 
     } 

所以基本上笨只接受正值,你可以改变这些行,但要-小心升级时,或者你可以扩展库类并添加另一个自定义键。

2

你应该只在后面添加 - 符号。在此功能

preg_replace('/([^0-9\.])/i', '', $items['price']) 
在车库

这里存在系统/库/ Cart.php线#194: 加入将看起来像

preg_replace('/([^0-9\.-])/i', '', $items['price']) 
相关问题