我正在使用 Yii 开发一个网站。我想在程序中动态更改应用程序名称。我知道我必须更改 Yii::app()->name 值。但我知道我应该把它放在哪里来覆盖 config.php 文件中写的内容。
我应该把它放在哪里?
我正在使用 Yii 开发一个网站。我想在程序中动态更改应用程序名称。我知道我必须更改 Yii::app()->name 值。但我知道我应该把它放在哪里来覆盖 config.php 文件中写的内容。
我应该把它放在哪里?
$name 是 CApplication 的公共值,理论上可以设置。
但这不是一个好主意,名称在 getId() 函数中使用,id 用作缓存中的 keyPrefix 或其他任何地方。所以不要动态更改应用程序名称。
如果您想要动态更改页面标题,您只需设置 CController::$pageTitle。
可能是老问题,但我只花了一个小时来解决这个问题,但找不到简单的解决方法,所以这里是:
只要您不使用任何缓存组件,您就可以动态更改 Yii::app()->name。
如果您使用缓存,如果您为整个应用程序提供一个静态 id(CApplication 类的 id 变量),您仍然可以动态设置 name 变量。
这是因为 CWebUser 组件为会话查找添加了 stateKeyPrefix 变量的前缀,如果未设置该变量,则会查找 CApplication id,如果未设置,则该 ID 是应用程序名称的散列版本。因此,如果您在配置文件中设置了这些变量中的任何一个,您就可以开始了。
为什么你需要改变它?在您显示的任何地方,Yii::app()->name
只需使用类似的东西getAppName()
并编写一个函数将其从数据库中提取出来。