当我执行上述here所述的步骤时,我只是在config / main.php中使用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')
没有组件,只有它的配置。
有什么建议我做错了吗?
答案 0 :(得分:3)
您必须为组件指定类,例如在config(TrackingClassName)中:
'modules' => array(
'tracking' => array(
'foo' => 'bar',
'components' => array(
'tracking' => array(
'class' => 'TrackingClassName',
),...
答案 1 :(得分:0)
您仍然可以通过Yii::app()->getModule('tracking')->tracking
访问它。组件将在首次使用之前创建。
答案 2 :(得分:0)