2018-05-25 17:20:27 2109次浏览 2条回答 1 悬赏 30 金钱

在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,不懂这么写的用意,求解

  • 回答于 2018-05-25 18:23 举报

    我不知道,你把分给我吧.哈哈.

  • 回答于 2018-05-28 17:51 举报

    你在这个方法里打印下 就知道了 $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
见习主管

wsd15321

注册时间:2017-11-08
最后登录:2019-06-13
在线时长:3小时12分
  • 粉丝0
  • 金钱255
  • 威望20
  • 积分485

热门问题