关于Yii::app()的几个问题 [ 未指定版本 ]
正在学习用yii开发,发现yii::app()是一个不错的东西,可以用它来返回CWebApplication的模块来直接调用当前的module. 例如Yii::app()->db, ->user, ->log. 我现在有几个问题,希望有经验的高手能来解答:
1: 在TbAactiveForm中的inputRow方法有这样一个函数:
Yii::app()->controller->widget(
$this->getInputClassName(),
array(
'type' => $type,
'form' => $this,
'model' => $model,
'attribute' => $attribute,
'data' => $data,
'htmlOptions' => $htmlOptions,
)
);
1:此方法返回的值显示在生成的表单中,我不理解的是Yii::app()->controller 这里返回的是LoginController,这个controller是在什么时候加载的LoginController, 为什么会加载LoginController,我的理解是从config.php中的component选项吗?我希望有人能从框架的底层代码的角度帮我解答一下,比如它调用了那些框架的类,触发了那些函数。 谢谢。
// application components
'components'=>array(
'user'=>array(
'allowAutoLogin'=>true,
),
'db'=>require(dirname(__FILE__).'/database.php'),
'errorHandler'=>array(
// use 'site/error' action to display errors
'errorAction'=>'site/error',
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
),
),
),
chrisgong 补充于 2014-10-19 02:30
自己又研究了一下代码,发现Yii::app()->controller会生成相应模块的application.比如在login的模块里 就返回loginControoler, 在其他的比如User的模块里 就会生成相应的user的adminController。现在想问谁明白Yii::app()->controller中的->controller是调用的哪里的controller变量? 是从CWebApplication吗?
共 1 个回答
chrisgong
注册时间:2014-10-19
最后登录:2014-10-21
在线时长:1小时6分
最后登录:2014-10-21
在线时长:1小时6分
- 粉丝0
- 金钱5
- 威望0
- 积分15