Php Yii系统参数来自数据库。Yii::app()->;getParams()不提供结果
我对CWebApplication进行了如下扩展,以便从数据库中添加参数(应用程序级参数)。但是到目前为止,当我尝试使用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
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(),