PrestaShop1.7后台产品列表新增wholesale_price列的查询错误排查
PrestaShop 1.7 后台产品列表新增批发价字段修复方案
错误原因
- 冗余关联同表:产品列表原生查询已经用别名
p引用ps_product表,wholesale_price属于该表内置字段,不需要额外LEFT JOIN同一张表定义别名m,多余的关联会导致字段匹配冲突。 - 查询配置错误:
$params['sql_select']的键名需对应新增的字段名wholesale_price,同时查询的表别名需使用原生的p,你自定义的m别名没有必要。 - 缺少前端渲染配置:仅配置SQL查询逻辑没有将字段加入列表展示配置,后台不会渲染对应列。
修正后完整代码
public function hookActionAdminProductsListingFieldsModifier($params) { // 新增wholesale_price字段查询逻辑 $params['sql_select']['wholesale_price'] = [ 'table' => 'p', 'field' => 'wholesale_price', 'filtering' => \PrestaShop\PrestaShop\Adapter\Admin\AbstractAdminQueryBuilder::FILTERING_LIKE_BOTH ]; // 新增字段列表配置,定义列名、排序等属性 $params['fields']['wholesale_price'] = [ 'title' => $this->l('批发价'), 'align' => 'right', 'sortable' => true, 'filter_key' => 'p!wholesale_price' ]; }
验证说明
代码部署后需要清除PrestaShop缓存,重新进入产品列表页面即可看到新增的批发价列,支持筛选和排序功能。
内容的提问来源于stack exchange,提问作者Krikislt - We make IT happen
相关产品推荐
相关产品推荐

