Mysql Prestashop-使用$this时出错->_在adminController中选择

Mysql Prestashop-使用$this时出错->_在adminController中选择,mysql,sql,controller,prestashop,prestashop-1.6,Mysql,Sql,Controller,Prestashop,Prestashop 1.6,当我扩展adminController并定义要在$this->\u select变量中显示的属性时,Prestashop显示此错误: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在“a.store\u name,a.id\u product FROMps\u selstock\u producta”附近 第3行 我的$this->\u选择变量包含: $this->_select = ' a.store_name, a.

当我扩展adminController并定义要在$this->\u select变量中显示的属性时,Prestashop显示此错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在“a.store\u name,a.id\u product FROM
ps\u selstock\u product
a”附近 第3行

我的$this->\u选择变量包含:

$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生成的,我只定义了要显示的属性

您尝试过吗

$this->\u select='a.store\u name,a.id\u product'

第一个问题 首先,您确定数据库中存在store_名称吗。默认情况下,Prestashop不提供名为
store\u name
的变量。也许你的店铺已经定制好了,所以你必须调查一下这种可能性

我在代码中看到模块使用该代码获取存储名称:

shop.`name`
所以代码应该是这样的:

$this->_select = 'a.`id_product`, shop.`name` ';
第二个问题 请记住,您一直在覆盖查询,因此可以在代码后面放置一些内容。如果控制器添加了一些变量,则必须在查询末尾添加逗号
。因此,在某些情况下,必须根据覆盖的控制器添加它

$this->_select = 'a.`id_product`, shop.`name` , ';
如果设置:

$this->table = 'selstock_product';
Prestashop将查找名为
Id{tablename}
的键列,因此,您需要根据Prestashop sintax重命名PK字段,即:
Id\u selstock\u product

问候

$this->table = 'selstock_product';