PrestaShop:如何获取类别树视图中 select 类别的 ID?

PrestaShop: how to get the IDs of the select categories in a Category Treeview?

我正在 Prestashop 1.6 中制作一个模块,管理员可以在其中设置配额潜水组和类别。下表:

CREATE TABLE quota
(
    id_quota INT PRIMARY KEY AUTO_INCREMENT,
    id_group INT NOT NULL,
    max_amount_per_order INT NOT NULL,
    max_amount_per_month INT NOT NULL
);

CREATE TABLE quota_category
(
    id_quota_category BIGINT PRIMARY KEY AUTO_INCREMENT,
    id_category INT NOT NULL,
    id_quota INT NOT NULL,
);

如您所见,第一个 table 有一个记录,第二个有多个记录。

为此我使用 select 的表格和类别的树视图,全部使用表格帮助,我没有使用 .tpl 文件。

            array(
                'type' => 'select',
                'label' => $this->l('Group'),
                'name' => 'id_group',
                'options' => array(
                    'query' => GroupCore::getGroups($this->context->language->id),
                    'id' => 'id_group',
                    'name' => 'name',
                ),
                'required' => true
            ),
            array(
                'type' => 'categories',
                'label' => $this->l('Category'),
                'name' => 'id_category',
                'tree' => [
                    'selected_categories' => [1,2,4],
                    'disabled_categories' => null,
                    'use_search' => true,
                    'use_checkbox' => true,
                    'id' => 'id_category_tree',
                ],
                'required' => true
            ),

表单按预期呈现,我的问题是我现在不知道如何处理要在两个 table 中插入的表单。

你能帮忙吗?我试图找到类似的案例,但到目前为止我找不到。

感谢您的帮助

我是这样解决的。 processSave()addupdate 上被调用,它 returns 的对象总是有 id 属性。在表单中定义树视图时,您可以为其设置名称。只需使用 Tool::getValue('name_of_the_treeview').

public function processSave() {

    $obj = parent::processSave();
    $categoryIds = Tools::getValue('id_categories');
    $id = $obj->id;

    Db::getInstance()->execute('delete from '._DB_PREFIX_.'adnquota_category where id_adnquota = '. pSQL($obj->id));

    if($categoryIds) {

        for($i = 0; $i < count($categoryIds); $i++){
            $rec = new AdnquotaCategoryModel();
            $rec->id_adnquota = $id;
            $rec->id_category = $categoryIds[$i];
            $rec->add();
        }
    }

    return $obj;
}