Корзина Codeigniter не может добавлять товары
Итак, я пытаюсь создать приложение с помощью корзины, и когда я попытался добавить товар, он не работает. Кстати, у меня уже есть работающее приложение для корзины, поэтому мне интересно, почему оно не работает. Я почти все скопировал с рабочего. вот код
Контроллер тележки
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Cart extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('cart');
}
public function add_to_cart(){
$id = $this->uri->segment(3);
if($this->cart->contents()){
foreach ($this->cart->contents() as $item){
if ($item['id']==$id){
$data = array('rowid'=>$item['rowid'],
'qty'=>++$item['qty']);
$process = $this->cart->update($data);
}
else{
$data = array(
'id'=>$id,
'qty'=>1,
'name' => $this->get_data->get_value('product_name','products','product_id', $id),
'price' => $this->get_data->get_value('product_price','products','product_id', $id)
);
$process = $this->cart->insert($data);
}
}
}
else{
$data = array('id'=>$id,
'qty' =>1,
'name' => $this->get_data->get_value('product_name','products','product_id', $id),
'price' => $this->get_data->get_value('product_price','products','product_id', $id),
);
$process = $this->cart->insert($data);
}
if($process){
$this->session->set_flashdata('success', 'Successful');
redirect('products');
}
else{
$this->session->set_flashdata('failed', 'Failed');
redirect('products');
//var_dump($process);
}
}
Вот кнопка
<div class="button pull-right" style="margin-top: 10px;"><a href="<?php echo base_url().'cart/add_to_cart/'.$row->product_id;?>"><span class="glyphicon glyphicon-shopping-cart"></span>Add to Cart</a></div>
Я действительно не вижу проблемы, я использую базу данных сеансов, база данных sess_us_database уже ВЕРНА. Я попытался использовать var_dump($process)
, и это неверно, я попробовал var_dump($data)
, и данные, похоже, в порядке, но часть вставки не работает. Есть идеи, ребята? это было бы большим подспорьем для меня, спасибо.
2 answers
Корзина CI по умолчанию допускает только alpha-numeric, dashes, underscores, colons or periods
в названии товара, и если цена товара равна 0
, то также он не добавит товар в корзину.
Пожалуйста, сначала проверьте их.
Хороший способ изменить эту переменную - поместить MY_Cart.php на вашем application\libraries\MY_Cart.php с помощью этого кода:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Cart extends CI_Cart {
var $product_name_rules = '[:print:]';
}