Php Yii系统参数来自数据库。Yii::app()->;getParams()不提供结果

Php Yii系统参数来自数据库。Yii::app()->;getParams()不提供结果,php,yii,Php,Yii,我对CWebApplication进行了如下扩展,以便从数据库中添加参数(应用程序级参数)。但是到目前为止,当我尝试使用 echo Yii::app()->params['adminMobileNo']; 扩展代码 class QelasyApplication extends CWebApplication { const PARAM_CACHE = 'params'; public function setParams($value) { e

我对CWebApplication进行了如下扩展,以便从数据库中添加参数(应用程序级参数)。但是到目前为止,当我尝试使用

echo Yii::app()->params['adminMobileNo'];
扩展代码

class QelasyApplication extends CWebApplication
{
    const PARAM_CACHE = 'params';

    public function setParams($value)
    {
        echo 'test 1';
        exit;
        $params = parent::getParams();
        print_r($params);
        echo 'test 2';
        exit;

        $value = Yii::app()->cache->get(self::PARAM_CACHE);
        if ($value === false) {
            $model = new SystemParam();
            $value = $model->getParam();
            print_r($value);
            echo 'test 3';
            exit;
            Yii::app()->cache->add(self::PARAM_CACHE, $value, 1800);
        }

        foreach ($value as $k => $v)
            $params->add($k, $v);
    }
}
在main index.php中

require_once($yii);
require_once($protected.'components/QelasyApplication.php');
$application = new QelasyApplication($config);
$application->run();
在控制器中,我试图访问参数作为

        Yii::app()->params['abc'] = 123;
        echo Yii::app()->params['basePath'];
        echo Yii::app()->params['abc'];
        echo Yii::app()->params['adminMobileNo'];
//        print_r(Yii::app()->getParams());
exit;
但是没有输出,它只是退出

甚至setParams方法也没有运行,因为里面的echo语句没有显示。原因可能是什么

这是我得到的输出

 CAttributeCollection#1
(
    [caseSensitive] => true
    [CMap:_d] => array()
    [CMap:_r] => false
    [CComponent:_e] => null
    [CComponent:_m] => null
) 
Params.php方法

$params = Yii::app()->getParams();
$value = Yii::app()->cache->get(self::PARAM_CACHE);

if ($value === false) {
    $model = new SystemParam();
    $value = $model->getParam();
    Yii::app()->cache->add(self::PARAM_CACHE, $value, 1800);
}

foreach ($value as $k => $v)
    $params->add($k, $v);

我仍然无法让它与
Yii::app()->cache->get(self::PARAM_cache)

config
文件夹中创建
params.php
。从db创建参数数组并返回它。然后在你的

protected/config/main.php

您可以通过以下方式访问它们:

 Yii::app()->params['YOUR_PARAM_KEY'];

在main.php中定义以下内容是可行的。(空数组)


这是第一种方法。

我添加了,但它说警告:require(params.php):无法打开流:抱歉,我的错误将
params.php
文件放在
protected/config/
文件夹中,而不是
components
文件夹中。这意味着将它放在与
main.php
相同的文件夹中,它将工作:)这似乎不是一个好的做法。。还有更好的办法吗?或者按照上面提到的方法整理我的方法。
 Yii::app()->params['YOUR_PARAM_KEY'];
'params' => array(),