我有一个控制器功能,试图更改配置项但它不起作用。如何通过调用此控制器函数来更改配置项的值?这是我的代码:
maintenance_config.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//Maintenance mode
$config['maintenance_mode'] = FALSE;
控制器文件功能
function maintenance_mode_activate(){
$this->config->load('maintenance_config');
$this->config->set_item('maintenance_mode', TRUE);
}
答案 0 :(得分:2)
根据您对问题的评论,您希望存储您的网站处于维护模式的事实。
您发布的代码确实更改了配置值,但仅限于PHP中请求/处理线程的持续时间 - 一旦执行涉及运行maitenance_mode_active()方法的流程,请参考您的示例,配置选项丢失。
set_item()方法不会覆盖文件中的设置,只是更改内存中的值 。您可以通过两种方式规避这一点:
只需创建一个表来存储应用程序的配置选项,然后创建一个示例值 maintenance-mode 设置为0的行。按下按钮后,将其更改为1并在需要时随时检索该值。
这种方法尽管不是很干净,但它的优点是可以继续使用$ this-&gt; config属性来管理代码。基本上,当您按维护模式按钮时,将以下内容写入文件(例如,我们称之为prop.php):
<?php
$config['maintenance-mode'] = true;
现在您只需将其包含在 config.php 文件中:
include_once("prop.php");
您现在可以通过$ this-&gt; config引用配置选项。如果要关闭维护模式,只需使用以下命令覆盖该文件:
<?php
$config['maintenance-mode'] = false;
如果这是您正在寻找的功能,请告诉我们!