大家好,我正在为一个项目使用codeigniter 3。现在我需要添加一个购物车系统。所以我尝试使用CI的默认购物车类。但当我试图通过视图加载它时,它会给我一条错误消息
遇到PHP错误
严重性:通知
消息:未定义的属性:CI_Loader::$cart
这是我的Cart.php,它是控制器。
defined('BASEPATH') OR exit('No direct script access allowed');
class Cart extends CI_Controller {
public function __construct (){
parent::__construct();
$this->load->helper(array('url','language','form'));
}
public function index()
{
$this->load->library('cart');
$this->load->view('home/cart');
}
public function update(){
$this->load->library('cart');
$this->cart->update($_POST);
redirect(base_url().'home/cart');
}
public function add_variables(){
$this->load->library('cart');
$data = array(
array(
'id' => 'sku_123ABC',
'qty' => 1,
'price' => 39.95,
'name' => 'T-Shirt',
'options' => array('Size' => 'L', 'Color' => 'Red')
),
array(
'id' => 'sku_567ZYX',
'qty' => 1,
'price' => 9.95,
'name' => 'Coffee Mug'
),
array(
'id' => 'sku_965QRS',
'qty' => 1,
'price' => 29.95,
'name' => 'Shot Glass'
)
);
$this->cart->insert($data);
}
}
这是我的观点(cart.php)
<!DOCTYPE html>
<html>
<head>
<title>Cart<title>
</head>
<body>
<?php $this->load->view('home/top-bar'); ?>
<div id="page">
<?php $this->load->view('home/header'); ?>
<div id="center-right">
<h1>This is Cart</h1>
<?php echo form_open(base_url().'Cart/update'); ?>
<table cellpadding="6" cellspacing="1" style="width:100%" border="0">
<tr>
<th>QTY</th>
<th>Item Description</th>
<th style="text-align:right">Item Price</th>
<th style="text-align:right">Sub-Total</th>
</tr>
<?php $i = 1; ?>
<?php foreach ($this->cart->contents() as $items): ?>
<?php echo form_hidden($i.'[rowid]', $items['rowid']); ?>
<tr>
<td><?php echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?></td>
<td>
<?php echo $items['name']; ?>
<?php if ($this->cart->has_options($items['rowid']) == TRUE): ?>
<p>
<?php foreach ($this->cart->product_options($items['rowid']) as $option_name => $option_value): ?>
<strong><?php echo $option_name; ?>:</strong> <?php echo $option_value; ?><br />
<?php endforeach; ?>
</p>
<?php endif; ?>
</td>
<td style="text-align:right"><?php echo $this->cart->format_number($items['price']); ?></td>
<td style="text-align:right">$<?php echo $this->cart->format_number($items['subtotal']); ?></td>
</tr>
<?php $i++; ?>
<?php endforeach; ?>
<tr>
<td colspan="2"> </td>
<td class="right"><strong>Total</strong></td>
<td class="right">$<?php echo $this->cart->format_number($this->cart->total()); ?></td>
</tr>
</table>
<p><?php echo form_submit('', 'Update your Cart'); ?></p>
</div>
</div>
<?php $this->load->view('home/footer'); ?>
</body>
</html>
有人能帮我一下吗?非常感谢。
您必须将控制器类名cart更改为其他名称,因为cart类已经使用了该名称,请尝试更改
$autoload['libraries']=数组('数据库','电子邮件','会话','艺术');
我的问题是通过在autoload.php文件