获取web.php的配置参数 [ 2.0 版本 ]
就params下面的参数配置的获取方法是:
$params = Yii::$app->params;
print_r($params);
//框架默认提供了一个值,此为管理员邮件,输出的结果是 admin@example.com
echo $params['adminEmail'];
这样子该文件下的所有参数均可获取。
问题是web.php里面的参数如何获取,找半天网络教程无果。
遂采取php原生的简单的粗暴的方法。
我们知道web.php是在初始化的时候就被加载,那么是会存在于内存中的。
so,就有了下面的代码:
//获取全局配置参数,我们发现返回的数据确实是web.php返回的内容
global $config;
//$config此刻是一个多维数组。里面有我们需要的参数
$config['params']['adminEmail'] = 'test@admin.com'; //修改params下面的adminEmail这个值
//注意,这么修改后,并不影响原有的默认配置参数。
如果有更佳的方法,还望告知,真心需要!!!
多谢!!!
鬼一浪人 魔都
注册时间:2015-03-28
最后登录:2023-12-26
在线时长:57小时24分
最后登录:2023-12-26
在线时长:57小时24分
- 粉丝29
- 金钱3960
- 威望85
- 积分5380
共 1 条评论
yii::$app->params['adminEmail']
你那个太费劲了。
对于web.php里面的参数获取不到的,你可以试试
@鬼一浪人 我想你弄错了一件事情,params.php是被引用为配置中params属性值,而整个web.php或main.php其实是将其中的数组映射为
http://www.yiichina.com/doc/api/2.0/yii-web-application
对象的属性。
所以你要取别的字段,需要在这个类里去找到对应的属性名称,比如你如果需要获取language的设置,那么应该使用
yii::$app->language
来进行获取。
@鬼一浪人 搞明白YII的加载机制是很重要的一件事情,或者你的IDE可以进行跟踪的话,也可以看到加载的过程的。
@lxepoo
请问大神,如何通过代码修改web.php中的配置,yii2有内置的方法吗?
@HatakeKakashi 代码改可以,但是改完不能持久化。配置修改最好还是手动。