我开始研究一个使用OpenCart的项目。在尝试添加新选项时,我遇到了一个奇怪的问题。
我在后端创建两个文本选项并将它们分配给产品。它有效。问题是,前端未正确加载选项。它们显示正常,但是当我输出所有应该存在的变量(特别是product_option_id)时,它们是NULL。我以前甚至没有注意到这个问题,但我需要product_option_id对代码进行一些修改。
当我通过print_f输出页面上的选项时,我得到了这个:
[0] => Array
(
[product_option_id] =>
[calc_group_id] => 0
[description] => ####
[option_id] => 469
[name] => ####
[type] => text
[option_value] =>
[required] => 0
)
[1] => Array
(
[product_option_id] =>
[calc_group_id] => 0
[description] => ####
[option_id] => 468
[name] => ####
[type] => text
[option_value] =>
[required] => 0
)
我将问题缩小到OpenCart中的产品模型(catalog / model / catalog / product.php)
和这一行:
$product_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option po LEFT JOIN `" . DB_PREFIX . "option` o ON (po.option_id = o.option_id) LEFT JOIN " . DB_PREFIX . "option_description od ON (o.option_id = od.option_id) WHERE po.product_id = '" . (int)$product_id . "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.sort_order");
我尝试了这个SQL语句,它确切地返回了它的内容,product_option_id也是如此。我不知道什么是错的,如果在phpmyadmin中测试,SQL语句会返回正确的值,但上面的代码行没有(我输出$ product_option_query-> $ rows和一些值,比如product_option_id是空的)。
我怀疑我是否以错误的方式创建了选项。或者这是可能的吗? 有趣的是,其他一些选项(选择类型选项)甚至我创建的选项(如果设置为选择类型)都会返回所有值,包括product_option_id。
答案 0 :(得分:2)
虚假警报,无论如何,谢谢。
问题不是opencart,问题是在我之前从事这个项目的人。 他在vqmod脚本中更改了我遇到的问题。不用说,他的sql语句不起作用,导致结果是两个product_option_ids,一个是实际结果,一个是空的。
这对我来说是一个教训。如果您接管一个项目,请务必仔细检查以前完成的工作。