0

当我执行此处描述的步骤时,我只是在 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'),它没有组件,只有它的配置。

有什么建议我做错了吗?

4

3 回答 3

3

您必须为组件指定类,例如在 config (TrackingClassName) 中:

'modules' => array(
    'tracking' => array(
        'foo' => 'bar',
        'components' => array(
            'tracking'  => array(
               'class' => 'TrackingClassName', 
            ),...
于 2013-12-10T18:27:19.133 回答
0

看这里

Yii 论坛的另一个帖子

于 2013-12-11T10:47:03.597 回答
0

您仍然可以通过Yii::app()->getModule('tracking')->tracking. 组件将在第一次使用之前创建。

于 2013-12-10T15:19:50.097 回答