2

我正在使用 Yii 开发一个网站。我想在程序中动态更改应用程序名称。我知道我必须更改 Yii::app()->name 值。但我知道我应该把它放在哪里来覆盖 config.php 文件中写的内容。

我应该把它放在哪里?

4

3 回答 3

3

$name 是 CApplication 的公共值,理论上可以设置。

但这不是一个好主意,名称在 getId() 函数中使用,id 用作缓存中的 keyPrefix 或其他任何地方。所以不要动态更改应用程序名称

如果您想要动态更改页面标题,您只需设置 CController::$pageTitle。

于 2013-10-05T17:08:32.160 回答
1

可能是老问题,但我只花了一个小时来解决这个问题,但找不到简单的解决方法,所以这里是:

只要您不使用任何缓存组件,您就可以动态更改 Yii::app()->name。

如果您使用缓存,如果您为整个应用程序提供一个静态 id(CApplication 类的 id 变量),您仍然可以动态设置 name 变量。

这是因为 CWebUser 组件为会话查找添加了 stateKeyPrefix 变量的前缀,如果未设置该变量,则会查找 CApplication id,如果未设置,则该 ID 是应用程序名称的散列版本。因此,如果您在配置文件中设置了这些变量中的任何一个,您就可以开始了。

于 2014-02-09T00:58:17.427 回答
0

为什么你需要改变它?在您显示的任何地方,Yii::app()->name只需使用类似的东西getAppName()并编写一个函数将其从数据库中提取出来。

于 2013-10-08T19:53:25.763 回答