当我扩展adminController并定义要在$ this-> _select变量中显示的属性时,Prestashop会显示以下错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近' a.store_name,a.id_product FROM
ps_selstock_product
a'在 第3行SELECT SQL_CALC_FOUND_ROWS , a.store_name, a.id_product FROM `ps_selstock_product` a WHERE 1 ORDER BY a.`id_selstock_product` ASC LIMIT 0,50
我的$ this-> _select变量包含:
$this->_select = '
a.store_name,
a.id_product';
我知道查询应该像这样,删除',':
SELECT SQL_CALC_FOUND_ROWS
a.store_name,
a.id_product FROM `ps_selstock_product` a
WHERE 1
ORDER BY a.`id_selstock_product` ASC LIMIT 0,50
但我不知道如何处理,因为查询是由prestashop构建的,我只定义了要显示的属性
答案 0 :(得分:1)
你试过这个吗?
$this->_select = 'a.store_name,a.id_product';
答案 1 :(得分:1)
首先,您确定store_name存在于Database中吗?默认情况下,Prestashop不提供名为store_name
的变量。也许你的商店已经定制,所以你必须调查这种可能性。
我在代码中看到模块使用该代码来获取商店名称:
shop.`name`
所以代码应该是这样的:
$this->_select = 'a.`id_product`, shop.`name` ';
请记住,您一直在覆盖查询,因此可以在代码之后放置一些内容。如果控制器添加了一些变量,则必须在查询末尾添加逗号,
。因此,在某些情况下,您必须根据您覆盖的控制器添加它。
$this->_select = 'a.`id_product`, shop.`name` , ';
答案 2 :(得分:0)
如果你设置:
$this->table = 'selstock_product';
Prestashop将查找名为Id_{tablename}
的键列,因此,您需要根据prestashop sintax重命名PK字段,即:Id_selstock_product
问候