opencart 3 在管理员设置中保存密钥和值

问题描述 投票:0回答:0

我试图在设置表中保存键和值,但只有值被存储

这是我在 admin setting.php controller 中的代码

if (isset($this->request->post['config_dual_listbox'])) {
    $data['config_dual_listbox'] = $this->request->post['config_dual_listbox'];
} elseif ($this->config->has('config_dual_listbox')) {
    $data['config_dual_listbox'] = $this->config->get('config_dual_listbox');
} else {
    $data['config_dual_listbox'] = array();
}

$data['dual_listbox_options'] = array();

$data['dual_listbox_options']['option_1'] = array(
    'text'  => 'Option 111',
    'value' => 'Option 1'
);

$data['dual_listbox_options']['option_2'] = array(
    'text'  => 'Option 2222',
    'value' => 'Option 2'
);

$data['dual_listbox_options']['option_3'] = array(
    'text'  => 'Option 3333',
    'value' => 'Option 3'
);

// Save the dual listbox options to the database
if (isset($this->request->post['dual_listbox_options'])) {
    $selected_options = $this->request->post['dual_listbox_options'];
    $options = array();
    foreach ($selected_options as $key => $value) {
        $option = $data['dual_listbox_options'][$key];
        $option['value'] = $value;
        $options[$key] = $option;
    }
       $this->model_setting_setting->editSetting('config_dual_listbox', $options);

} elseif (!$this->config->has('config_dual_listbox')) {
    // If no options have been saved previously, save the default options
    $this->model_setting_setting->editSetting('config_dual_listbox', $data['dual_listbox_options']);
}


$options = $this->config->get('config_dual_listbox');
print_r($options);

这里是管理员设置中的代码。twig

<select name="config_dual_listbox[]" id="kt_dual_listbox_3" multiple class="form-control ">
 {% for dual_listbox_options1 in dual_listbox_options %}
            {% if dual_listbox_options1.value in config_dual_listbox %}
    <option value="{{ dual_listbox_options1.value }}" selected="selected">{{ dual_listbox_options1.text }}</option>
            {% else %}
    <option value="{{ dual_listbox_options1.value }}" >{{ dual_listbox_options1.text }}</option>
            {% endif %} 
{% endfor %} 
</select>

它只会像这样存储在数据库中 [“选项 1”、“选项 2”、“选项 3”]

知道我错过了什么

我正在努力达到这个结果

Array
(
    [option_1] => Array
        (
            [text] => Option 111
            [value] => Option 1
        )

    [option_2] => Array
        (
            [text] => Option 2222
            [value] => Option 2
        )

    [option_3] => Array
        (
            [text] => Option 3333
            [value] => Option 3
        )

)
php opencart
© www.soinside.com 2019 - 2024. All rights reserved.