消息:未定义 属性: CI_Loader::$cart (Codeigniter 3)
Message: Undefined property: CI_Loader::$cart (Codeigniter 3)
大家好,我正在为一个项目使用 codeigniter 3。现在我需要给它添加一个购物车系统。所以我正在尝试使用 CI 的默认购物车 Class。
但是当我尝试通过视图加载它时,它给了我一条错误消息
A PHP Error was encountered
Severity: Notice
Message: Undefined property: 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>
有人可以帮我解决这个问题吗?
谢谢。
您必须将您的控制器 class 名称 cart 更改为其他名称,因为 cart class 已使用该名称尝试更改
$autoload['libraries'] = array('database', 'email', 'session','cart');
我的问题通过在 autoload.php 文件中添加购物车得到解决
大家好,我正在为一个项目使用 codeigniter 3。现在我需要给它添加一个购物车系统。所以我正在尝试使用 CI 的默认购物车 Class。 但是当我尝试通过视图加载它时,它给了我一条错误消息
A PHP Error was encountered
Severity: Notice
Message: Undefined property: 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>
有人可以帮我解决这个问题吗? 谢谢。
您必须将您的控制器 class 名称 cart 更改为其他名称,因为 cart class 已使用该名称尝试更改
$autoload['libraries'] = array('database', 'email', 'session','cart');
我的问题通过在 autoload.php 文件中添加购物车得到解决