我正在尝试学习opencart结构,并尝试在表product
下创建一个新列。新专栏是“测试”
然后我尝试检索此页面下的数据index.php?route=checkout/cart
(用测试列替换价格)
catalog\controller\checkout\cart.php
...
$this->data['products'][] = array(
'key' => $product['key'],
'thumb' => $image,
'name' => $product['name'],
'model' => $product['model'],
'option' => $option_data,
'quantity' => $product['quantity'],
'stock' => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')),
'reward' => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''),
'price' => $product['test'], //<-- new column
'total' => $total,
'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']),
'remove' => $this->url->link('checkout/cart', 'remove=' . $product['key'])
);
问题是我没有得到任何输出,我不知道如何使用该模型。哪个查询/功能与此页面相关?
答案 0 :(得分:1)
问题是$products
控制器上可用的cart.php
是从先前设置的结构中存储的会话中检索到的,因此没有test
索引和你应该得到Notice: undefined index 'test' in ...
。
$products
foreach ($this->cart->getProducts() as $product) {
//...
}
请参阅/system/library/cart.php
和方法getProducts()
,了解我所说的内容。
如果您想在catalog/controller/product/category.php
或catalog/controller/product/product.php
控制器上使用此功能,您尝试的代码将有效。
如果您更换所有产品列表和产品详细信息中的价格,请使用以下控制器:
使用您的值,购物车中的最终价格将是您的测试值。