当我执行所描述的这里步骤时,我只需使用config /main.php中的配置:
<?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')没有组件,只有它的配置。
有什么建议我做错了吗?
发布于 2013-12-10 18:27:19
您必须为组件指定类,例如在config (TrackingClassName)中:
'modules' => array(
'tracking' => array(
'foo' => 'bar',
'components' => array(
'tracking' => array(
'class' => 'TrackingClassName',
),...发布于 2013-12-10 15:19:50
您仍然可以通过Yii::app()->getModule('tracking')->tracking访问它。组件将在第一次使用之前创建。
发布于 2013-12-11 10:47:03
看这里
Yii论坛的另一篇文章
https://stackoverflow.com/questions/20497620
复制相似问题