Yii使用Active Record从数据库加载系统参数

时间:2013-09-30 13:00:53

标签: yii

我有兴趣使用名为Yii::app()->params的{​​{1}}扩展程序将一些系统参数加载到数据库的CActiveRecord数组中。

不幸的是我在网上找不到太多建议,但我相信我可以在SiteSetting SiteSetting中添加一个方法并添加设置...

loadSiteSettingsToAppParams

...到配置。

我想知道我是否只能将'onBeginRequest'=>array('SiteSetting', 'loadSiteSettingsToAppParams') 添加到onBeginRequest类中某处的Yii::app()(以保持我的代码模块化)以及这是否是一种明智的方法。

提前致谢。

1 个答案:

答案 0 :(得分:2)

现在重新阅读您的问题,我会尝试提供答案。

问题"我想知道我是否只能将此onBeginRequest添加到Yii::app()类中某处的SiteSetting(以保持我的代码模块化)& #34;答案是:你不仅限于一个班级。您可以(理论上)将其放在应用程序的任何位置以及config.php文件中。

至于它是否是一种明智的方法,它取决于从数据库请求这些设置所需的时间,以及您是否准备将该时间添加到您的HttpRequest响应时间。在每次HttpRequest之前都会触发onBeforeRequest,如果loadSiteSettingsToAppParams方法耗费大量时间,那么您需要将该时间添加到HttpRequest响应时间。

我建议您在登录后获取这些设置,然后仅在更改时更新它们(更新设置)。这样,您可以将loadSiteSettingsToAppParams类中的UserIdentity拨打电话,并在成功登录后进行调用。

这就是我如何做到这一点。

希望我帮助过。