我如何获得键值并将其设置为 config_item 。我一直试图通过表单和数据库来做到这一点。我似乎似乎只是手动更改配置项。
我有一个表单,它找到主题,然后将我选择的主题保存到数据库中。
Table Name Setting
setting_id = 1
group = config
key = config_template
value = Name of theme submitted in form.
我希望能够使用$this->config->item('config_template')
,以便获得价值。
因为我正在努力实现这个前端控制器
<?php
class Home extends CI_Controller {
public function index() {
if(file_exists(DIR_TEMPLATE . $this->config->item('config_template') . '/template/common/home.php')) {
$this->load->view($this->config->item('config_template') . '/template/common/home');
} else {
$this->load->view('default/template/common/home');
}
}
}
后端设置控制器
<?php
class Setting extends CI_Controller {
public function index() {
$this->load->model('setting_model');
if ($this->input->server('REQUEST_METHOD') == 'POST') {
$this->setting_model->editSetting('config', $this->input->post());
redirect('store');
}
$data['action'] = site_url('setting');
if (null !==($this->input->post('config_template'))) {
$data['config_template'] = $this->input->post('config_template');
} else {
$data['config_template'] = $this->config->item('config_template');
}
$data['templates'] = array();
$directories = glob(DIR_APPLICATION . 'views/theme/*', GLOB_ONLYDIR);
foreach ($directories as $directory) {
$data['templates'][] = basename($directory);
}
return $this->load->view('setting/setting', $data);
}
}
答案 0 :(得分:1)
您必须在模型/控制器中编写一个钩子以从数据库中获取值并在运行时设置它,也可以在__construct()中设置它们
function __construct() {
parent::__construct();
//get $value from database here
$this->config->set_item('config_template', $value);
}
然后在其余代码中,您可以使用
$this->config->item('config_template')
检索值