Php 如何通过调用codeigniter控制器函数来更改配置项值?

Php 如何通过调用codeigniter控制器函数来更改配置项值?,php,codeigniter,Php,Codeigniter,我有一个控制器函数,试图更改配置项,但它不起作用。如何通过调用此控制器函数来更改配置项的值?这是我的密码: maintenance\u config.php <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); //Maintenance mode $config['maintenance_mode'] = FALSE; 根据对问题的评论,您希望存储网站处于维护模式的事实 您发布的代

我有一个控制器函数,试图更改配置项,但它不起作用。如何通过调用此控制器函数来更改配置项的值?这是我的密码:

maintenance\u config.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

 //Maintenance mode

 $config['maintenance_mode'] = FALSE;

根据对问题的评论,您希望存储网站处于维护模式的事实

您发布的代码确实更改了配置值,但仅在PHP中请求/处理线程的持续时间内更改——参考您的示例,一旦执行了涉及运行maitenance_mode_active()方法的流,配置选项就会丢失

set_item()方法不会覆盖文件中的设置,它只是更改内存中的值。您可以通过两种方式规避此问题:

1.将值存储在数据库中。 只需创建一个表来存储应用程序的配置选项,然后创建一行,该行的维护模式示例值设置为0。按下按钮后,将其更改为1,并在需要时检索该值

2.将其存储在可以覆盖的PHP文件中。 这种方法虽然不那么干净,但其优点是您可以继续使用$This->config属性来管理代码。基本上,当您按下维护模式按钮时,将以下内容写入文件(例如,我们称之为prop.php):

现在可以通过$this->config引用配置选项。如果要关闭维护模式,只需使用以下内容覆盖文件:

<?php

$config['maintenance-mode'] = false;

您想暂时或永久地更改它..我想暂时更改。似乎我将单击一个按钮来激活维护模式,然后单击另一个按钮或同一个按钮来停用该模式。
<?php

$config['maintenance-mode'] = true;
include_once("prop.php");
<?php

$config['maintenance-mode'] = false;