Я пытаюсь сделать легкую форму в OpenCart 2.0.1.1, которая хранит значения в базе данных.Редактировать значение для базы данных через пользовательский админ, Opencart 2.0
Я сделал специальную страницу администрирования, где у меня будут некоторые расширения, которые я делаю самостоятельно. Это была легкая часть.
Я создал форму и столбец в базе данных, это нормально работает, я получаю значения и отображается в текстовом поле внутри администратора. Но проблема в том, когда я пытаюсь редактировать тексты. Когда я изменяю значение textarea и ударяю, он просто исчезает! и столбец в базе данных пропал.
Мой файл контроллера:
админ/контроллер/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 и я хочу использовать таблицу настройки в моей базе данных для сохраните мои значения (нет необходимости изобретать колесо). Как я сказал выше. Он передает значения из базы данных. Но я не могу его обновить.
Мой файл шаблона:
админ/вид/шаблон/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>
Я не сделал свой собственный файл модели, потому что я хочу, чтобы использовать тот, который подключен к установке , Нужно ли мне создавать свою собственную модель для выполнения этой работы?
Привет, друг, спасибо за ваш быстрый ответ, я попытался сделать то, что вы сказали. Когда я попытался сделать это с предопределенным столбцом в базе данных, он работал хорошо, как раньше, но как только я сохранил и изменил значение, он удалил все мои «конфигурационные» ключи в таблице параметров, и я получил сообщение об ошибке в admin: (Warning: fopen (/ home/u/u6144172/www/system/logs /): не удалось открыть поток: находится ли каталог в /home/u/u6144172/www/system/library/log.php в строке 6). Я также пробовал без предопределенной колонки, такой же результат. Вы знаете, что мне не хватает? –
Можно сказать, что это сработало как очарование для моей колонки, но оно удалило все остальные столбцы конфигурации hehe. –
Прошу прощения (я сейчас чувствую себя глупо). Я просто переименовал ключ кода + в другое, и теперь он отлично работает, спасибо за помощь! –