当我完成这里描述的步骤时,我只得到了config/main.hp:中的config
<?php
return array(
'modules' => array(
'tracking' => array(
'components' => array(
'tracking' => array(
'foo' => 'bar'
)))));
这个结果,当我var_dump Yii::app()->getModule('tracking')
:时
object(TrackingModule)#148 (20) {
["defaultController"]=> string(7) "default"
["layout"]=> NULL
["controllerNamespace"]=> NULL
["controllerMap"]=> array(0) {}
["_controllerPath":"CWebModule":private]=> NULL
["_viewPath":"CWebModule":private]=> NULL
["_layoutPath":"CWebModule":private]=> NULL
["preload"]=> array(0) {}
["behaviors"]=> array(0) {}
["_id":"CModule":private]=> string(8) "tracking"
["_parentModule":"CModule":private]=> NULL
["_basePath":"CModule":private]=> string(79) "..."
["_modulePath":"CModule":private]=> NULL
["_params":"CModule":private]=> NULL
["_modules":"CModule":private]=> array(0) {}
["_moduleConfig":"CModule":private]=> array(0) {}
["_components":"CModule":private]=> array(0) {}
["_componentConfig":"CModule":private]=> array(1) {
["tracking"]=> array(1) {
["foo"]=> string(4) "bar"
}
}
["_e":"CComponent":private]=> NULL
["_m":"CComponent":private]=> NULL
}
我希望我可以通过Yii::app()->getModule('tracking')->tracking
访问模块组件。但正如您所看到的,Yii::app()->getModule('tracking')
没有组件,只有配置。
有什么建议我做错了什么吗?
您必须为组件指定类,例如在config(TrackingClassName)中:
'modules' => array(
'tracking' => array(
'foo' => 'bar',
'components' => array(
'tracking' => array(
'class' => 'TrackingClassName',
),...
您仍然可以通过Yii::app()->getModule('tracking')->tracking
访问它。组件将在首次使用之前创建。
请参阅此处
另一个Yii论坛张贴