所以我很长时间以来一直在改写当前的主题。出于某些原因,我需要从我的控制器中包含新主题,以及为什么我需要更改当前激活主题。如何覆盖environment.php主要功能的主题索引值
private function _main() {
return array(
// Base Path
'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
// Theme Name
'theme' => 'front_theme',
}
现在在控制器中我想将主题从前面更改为 user_theme 。
提前致谢。
答案 0 :(得分:0)
最后我找到了解决方案。要覆盖当前激活的主题,您需要在控制器中创建init函数并提供新主题的名称。这是代码:
public function init()
{
Yii::app()->theme = 'user';
parent::init();
}
答案 1 :(得分:0)
在Yii 1中,您有不同的方法来配置正在使用的主题。
您可以通过初始化Yii::app()->theme
方法中的init()
属性方法,找到一种动态方式。
或者您可以为应用程序全局设置主题,这可能是我建议使用的主题,除非您有config/main.php
中的具体要求:
return array(
// ...
'theme' => 'mytheme'
// ...
)
如果在第一个中找不到模板,这将从/themes/mytheme/
中选择要使用的主题并回退到/protected/views/
。
作为最后的建议,如果您要开始一个全新的项目,我建议直接使用Yii 2而不是Yii 1,因为它现在是首选的,而且更多 - 迄今为止的框架版本。