0

Codeingiter Cart にマイナスの価格を追加しようとしていますが、できません。

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

はDB$result->discountから取得され、10 進数-20です。

このコードを使用すると、カートに商品が入りますが、-20 ではなく (+)20 に変わります。これに関する理由と助けはありますか?

4

2 に答える 2

1

system/libraries/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;
        }

したがって、基本的に codeigniter は正の値のみを受け入れます。これらの行を変更することはできますが、アップグレードするときは注意するか、ライブラリ クラスを拡張して別のカスタム キーを追加することができます。

于 2013-08-25T11:50:57.743 に答える