关于源码里的module有个不懂的地方 [ 2.0 版本 ]
在yii\base\Module里的runAction方法
list($controller, $actionID) = $parts;
$oldController = Yii::$app->controller;
Yii::$app->controller = $controller;
$result = $controller->runAction($actionID, $params);
if ($oldController !== null) {
Yii::$app->controller = $oldController;
}
这里 Yii:$app->controller = $controller
这步好像有点不起实际作用?执行 runAction
的还是 $controller
,最后 $oldController
还是重新赋值给 Yii:$app->controller
,不懂这么写的用意,求解
共 2 个回答
-
你在这个方法里打印下 就知道了
$oldController
可能是 null值的 存在 2种情况的if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); Yii::$app->controller = $oldController; return $result; }
还有 为什么 我的 2.0 yii 这方法跟你的不同?
wsd15321
注册时间:2017-11-08
最后登录:2019-06-13
在线时长:3小时12分
最后登录:2019-06-13
在线时长:3小时12分
- 粉丝0
- 金钱255
- 威望20
- 积分485