Yii引导模块内部

时间:2013-07-12 08:45:40

标签: twitter-bootstrap yii yii-extensions yii-modules

我正在尝试从模块中包含yii bootstrap。我想将它保存在/ modules / myModule / extensions / bootstrap中,并将所有配置参数保留在主配置之外。有可能吗?

目前在myModule init中我做了

$this->setImport(array(
'myModule.models.*',
'myModule.components.*',
'myModule.extensions.yiistrap.helpers.TbHtml',
'myModule.extensions.bootstrap.components.*',
'myModule.extensions.bootstrap.widgets.*'
));


if (!Yii::app()->hasComponent('bootstrap')) {
Yii::setPathOfAlias('bootstrap', dirname(__FILE__) . '/extensions/bootstrap');
Yii::createComponent('bootstrap.components.Bootstrap')->init();
Yii::app()->bootstrap->register();
}
}

它适用于某些小部件,但对于大多数我都会收到错误

Property "CWebApplication.bootstrap" is not defined.

1 个答案:

答案 0 :(得分:0)

您需要设置应用程序引导组件,这应该有效:

Yii::setPathOfAlias('bootstrap', dirname(__FILE__) . '/extensions/bootstrap');
$bootstrap = Yii::createComponent('bootstrap.components.Bootstrap');
$bootstrap->init();
Yii::app()->bootstrap = $bootstrap;
$bootstrap->register();

将config传递给bootstrap:

$config = array(
    'class' => 'bootstrap.components.Bootstrap',
    'option1' => ...
);
$bootstrap = Yii::createComponent($config);