php CI $ this-> cart-> insert ($ data) получить нулевое значение - PullRequest
0 голосов
/ 18 марта 2019

Я получаю стек в скрипте. Я использовал Code Igniter ver. 3.1.10. Я использую библиотеку корзины в моем контроллере

вот мой контроллер

    public function add_to_cart()
        {
            $idit=$this->input->post('id_item');
            $product=$this->Salesmodel->get_item($idit);
            $i=$product->row_array();
            $data = array(
                   'id'             => $i['id_item'],
                   'name'           => $i['name_item'],
                   'main_price'     => $i['main_price'],
                   'sell_price'     => $i['sell_price'],

                );

            $this->cart->insert($data);
            $rows = count($this->cart->contents());    // I want to find out rows count and result is null
            echo $i['id_item'];                     //get value, not null
            echo $rows;                                // get '0'

        }

model.php

function get_item($idit)
{
   $rslt=$this->db->query("SELECT * FROM tb_item where id_item='$idit'");
   return $rslt;
}

но в этом скрипте я всегда получаю нулевое количество строк в корзине. Я должен добавить этот скрипт в config.php:

$config['sess_use_database'] = TRUE;

Я также создал новую таблицу с именем

ci_session

но это возвращает тот же результат, моя корзина всегда имеет нулевое количество строк и нулевые данные. Пожалуйста, помогите мне с ошибкой в ​​скрипте, который я сделал.

Заранее спасибо

1 Ответ

0 голосов
/ 18 марта 2019

Для правильного сохранения в корзину эти 4 индекса массива обязательны :
id - Идентификатор товара.
qty - Количество предметов.
price - Цена товара.
name - Название предмета.

И 5-й индекс - options, в котором вы можете хранить все дополнительные атрибуты, которые вам нужны (хотя это должен быть массив).

Таким образом, вы можете изменить массив $data следующим образом:

        $data = array(
               'id'             => $i['id_item'],
               'qty'            => 1, // here I just manually set it to 1
               'name'           => $i['name_item'],
               'price'          => $i['main_price'], // here I changed 'main_price' index to 'price'
               'options'        => array('sell_price' => $i['sell_price']) // moved the 'sell_price' array here

            );
...