2016-08-04 15:18:06 13919次浏览 9条回答 5 悬赏 10 金钱

如何在 backend\controllers\SiteController\actionIndex 方法中调用另一模块下的方法 frontend\modules\aa\controllers\UsersController\actionDoLogin 的方法

  • 回答于 2016-08-04 15:25 举报
    use  frontend\modules\aa\controllers\UsersController\actionDoLogin
    
    3 条回复
    回复于 2016-08-04 15:35 回复

    这方法试过了,不行的,

    回复于 2016-08-04 16:00 回复

    报啥错?

    回复于 2016-08-04 16:23 回复

    404 错误

  • 回答于 2016-08-04 17:07 举报

    我觉得有可能是因为没有定义路径别名或者方法没写namespace

  • 回答于 2016-08-05 10:12 举报

    每一个action都应该独一无二。不应该存在调用关系。若有公共部分,请放于model或者helper。

    如果非要调用,也不是不可以。毕竟controller的本质是一个类,而action的本质是一个类中的function。

    那么就在需要调用的类的开头use 被调用类的全命名空间。

    然后实例化调用之。

    , 觉得很赞
  • 回答于 2016-08-06 23:28 举报

    一个控制器调用其他控制器action的方法:

    Yii::$app->runAction('new_controller/new_action', $params);
    // 或者
    return (new SecondController('second', Yii::$app->module))->runAction('index', $data);
    
    1 条回复
    回复于 2017-12-27 10:24 回复

    好人!! 我终于找到答案了

    觉得很赞
  • 回答于 2016-08-14 22:21 举报

    补充一下,如果这个方法在两个控制器里都是通用的,建议写成behavior或者php自身的Traits

  • 回答于 2016-12-23 16:47 举报

    Yii::$app->runAction('new_controller/new_action', $params); 使用这个是不是还要配置什么,试了一下,总是报500错误

  • 回答于 2018-05-16 01:03 举报

    解决了吗?新手,也遇到这问题。。求方法

  • 回答于 2018-05-18 15:31 举报

    runAction是路径,类似与api/v1/xxx/xxx这样 不只是控制器/方法

  • 回答于 2018-12-11 15:29 举报

    一个控制器调用其他控制器action的方法

    WechatController actionIsFollow

    Yii::$app->runAction('wechat/is-follow', $this->openid);

您需要登录后才可以回答。登录 | 立即注册
tgy3300
见习主管

tgy3300

注册时间:2015-03-20
最后登录:2018-09-12
在线时长:19小时53分
  • 粉丝4
  • 金钱10
  • 威望10
  • 积分300

热门问题