gpt4 book ai didi

php - 通过自定义管理将值编辑到数据库,Opencart 2.0

转载 作者:行者123 更新时间:2023-11-29 07:33:45 26 4
gpt4 key购买 nike

我正在尝试在 OpenCart 2.0.1.1 中制作一个简单的表单,将值存储在数据库中。

我已经完成了一个自定义管理页面,其中我将有一些我自己制作的扩展。这是最简单的部分。

我已经在数据库中制作了表单和列,这工作正常,我得到了值并且它显示在管理内的文本区域中。但问题是当我尝试编辑文本时。当我更改文本区域的值并点击保存时,它就消失了!并且数据库中的列消失了。

我的 Controller 文件:

admin/controller/ekomet/design.php

<?phpclass ControllerEkometdesign extends Controller {
private $error = array();

public function index() {
$this->load->language('ekomet/design');

$this->document->setTitle($this->language->get('heading_title'));

$this->load->model('setting/setting');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('design_name', $this->request->post);
}

$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');

$data['tab_general'] = $this->language->get('tab_general');

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

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL')
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_stores'),
'href' => $this->url->link('ekomet/design', 'token=' . $this->session->data['token'], 'SSL')
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('ekomet/design', 'token=' . $this->session->data['token'], 'SSL')
);

if (isset($this->session->data['success'])) {
$data['success'] = $this->session->data['success'];

unset($this->session->data['success']);
} else {
$data['success'] = '';
}

$data['action'] = $this->url->link('ekomet/design', 'token=' . $this->session->data['token'], 'SSL');

$data['cancel'] = $this->url->link('ekomet/design', 'token=' . $this->session->data['token'], 'SSL');

$data['token'] = $this->session->data['token'];

$settings = $this->model_setting_setting->getSetting('design_name');

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

$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');

$this->response->setOutput($this->load->view('ekomet/design.tpl', $data));
}

protected function validate() {
if (!$this->user->hasPermission('modify', 'ekomet/design')) {
$this->error['warning'] = $this->language->get('error_permission');
}

if ($this->error && !isset($this->error['warning'])) {
$this->error['warning'] = $this->language->get('error_warning');
}

return !$this->error;
}}

我已经查看了setting.php Controller ,我确实想使用数据库中的设置表来存储我的值(不需要再次发明轮子)。正如我上面所说。它确实传递数据库中的值。但我无法更新它。

我的模板文件:

admin/view/template/ekomet/design.tpl

          <div class="form-group required">
<label class="col-sm-2 control-label" for="input-ekomet-name">E-komet namn</label>
<div class="col-sm-10">
<input type="text" name="config_ekomet_name" value="<?php echo $config_ekomet_name; ?>" placeholder="<?php echo $entry_ekomet_name; ?>" id="input-ekomet-name" class="form-control" />
<?php if ($error_ekomet_name) { ?>
<div class="text-danger"><?php echo $error_ekomet_name; ?></div>
<?php } ?>
</div>
</div>

我还没有制作自己的模型文件,因为我想使用连接到设置的模型文件。我需要制作自己的模型才能完成这项工作吗?

最佳答案

您在代码和关键字段中使用了错误的前缀

确保如果 code = abckey = abc_def

替换

 $this->model_setting_setting->editSetting('design_name', $this->request->post);

 $this->model_setting_setting->editSetting('config', $this->request->post);

因此它将是 code = configkey = config_ekomet_name

关于php - 通过自定义管理将值编辑到数据库,Opencart 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com