Prestashop - 显示供应商名称而不是 id

Prestashop - Show supplier names instead id

在列表视图中,我想显示供应商名称而不是 ID。视图是自动生成的。我该如何更改它?

我在 renderList 选项中的代码是:

public function renderList()
{
    $this->addRowAction('view');
    // Adds an Edit button for each result
    $this->addRowAction('edit');

    // Adds a Delete button for each result
    $this->addRowAction('delete');

    $this->simple_header = false;

    return parent::renderList();
}

字段列表是下一个:

$this->fields_list = array(
        ...
        'id_product_supplier' => array('title' => $this->l('ID Supplier'), 'align' => 'center', 'class' => 'fixed-width-xs'),
        ...
        );

如果我想显示供应商的名称而不是 ID,并且可以选择过滤列表中的供应商...

我能做什么?

谢谢!

您可以通过两种方式更改它,具体取决于它是谁的控制器(默认为您的控制器):

如果您构建了自己的管理控制器:

public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false)
{
    parent::getList($id_lang, $order_by, $order_way, $start, $limit, $id_lang_shop);

    foreach($this->_list as &row)
    {
        $row['new_field'] = 'Hello';
        $row['existing_field'] = 'Changed';
    }
}

如果您使用模块修改现有表单:

public function hookActionAdminProductsListingResultsModifier($args)
{
    $args['list_total'] += 1;

    foreach($args['list'] as &row)
        {
        $row['new_field'] = 'Hello';
            $row['existing_field'] = 'Changed';
    }
}

如果你想使用挂钩,你必须先注册。另外,更改挂钩名称中的 {AdminProducts} 部分。

有关详细信息,请参阅 classes/controller/AdminController.php @ Line 2952

Hook::exec('action'.$this->controller_name.'ListingResultsModifier', array(
    'list' => &$this->_list,
    'list_total' => &$this->_listTotal,
));